跳到主要内容
ansicode

VPA — 垂直行绝对定位(CSI d)

将光标移动到绝对行,保持当前列不变。

字节形式

涵盖所有常见的字符串字面量写法,方便正反查找。

\\x1b[\x1b[<row>d
\\033[\033[3d
\\e[\e[3d
ESC [ESC [ row d
hex1b 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

示例

bash
printf '\033[24dstatus: ok'   # jump to row 24, keep column
python
import sys; sys.stdout.write('\x1b[24dstatus: ok')
go
fmt.Print("\x1b[24dstatus: ok")
javascript
process.stdout.write('\x1b[24dstatus: ok')
c
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
不支持

相关序列

在家族食谱中

CSI 食谱 · 2. 光标移动 —— CUU / CUD / CUF / CUB + CUP + CHA / VPA