VPA — 垂直行绝对定位(CSI d)
将光标移动到绝对行,保持当前列不变。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[<row>d\\033[
\033[3d\\e[
\e[3dESC [
ESC [ row dhex
1b 5b ... 64说明
Vertical Position Absolute。把光标移到第 `<row>` 行(从 1 开始),不改变列 —— 是 CHA(`\x1b[<col>G`,cursor-column)的行版对照。省略时默认 row=1(`\x1b[d`)。超界数值被钳制到可视区域(启用 DECOM 时为 DECSTBM 滚动区域)。VPA 的「保留列」行为使其成为在已知行重绘状态栏 / 进度行的正确原语,而用户继续在上方列输入 —— CUP(`\x1b[r;cH`)则会把列重置为 1。日常 TUI 多用绝对 (row, col) 二元组,因此使用频率不如 CUP / CUU / CUD,但每个 ECMA-48 兼容终端都支持它。
规范出处: ECMA-48 §8.3.158 (VPA) / xterm-ctlseqs
示例
printf '\033[24dstatus: ok' # jump to row 24, keep columnimport sys; sys.stdout.write('\x1b[24dstatus: ok')fmt.Print("\x1b[24dstatus: ok")process.stdout.write('\x1b[24dstatus: ok')printf("\x1b[24dstatus: ok");终端支持
- xterm
- 支持
- Linux console (fbcon)
- 支持
- macOS Terminal.app
- 支持
- iTerm2
- 支持
- Windows Terminal
- 支持
- cmd.exe / ConPTY
- 部分
- kitty
- 支持
- alacritty
- 支持
- WezTerm
- 支持
- Ghostty
- 支持
- GNOME Terminal
- 支持
- Konsole
- 支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 | 部分 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |