跳到主要内容
ansicode

HVP — 水平与垂直定位(CSI f,CUP 的别名)

将光标移动到绝对 (row, col) —— 语义与 CUP 完全相同,仅末字节用 `f` 而非 `H`。

字节形式

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

\\x1b[\x1b[<row>;<col>f
\\033[\033[1;1f
\\e[\e[1;1f
ESC [ESC [ row ; col f
hex1b 5b ... 66

说明

Horizontal and Vertical Position。ECMA-48 §8.3.61 定义 HVP 的语义与 CUP(`\x1b[r;cH`,§8.3.21)完全相同 —— 移动光标到绝对的 1 起始行/列,默认 (1,1),超界值钳到可视区域。差别仅在末字节:CUP 是 `H`(0x48),HVP 是 `f`(0x66)。两种形式在野外都常见 —— 一些程序仍使用更老的 `f` 形式,尤其是 curses 默认能力表的部分项与某些 DEC VT 克隆的测试向量。解码时把 HVP 等同于 CUP;新代码请发送 CUP(`H`),除非需要匹配遗留流。注:ECMA-48 历史上把 HVP 视作主要原语而 CUP 是同义;xterm-ctlseqs 反过来把 CUP 作为主形式,反映现代用法。

规范出处: ECMA-48 §8.3.61 (HVP) / xterm-ctlseqs

示例

bash
printf '\033[2;5fHello at (2,5)\n'   # same as \033[2;5H
python
print('\x1b[2;5fHello at (2,5)')
go
fmt.Print("\x1b[2;5fHello at (2,5)\n")
javascript
process.stdout.write('\x1b[2;5fHello at (2,5)\n')
c
printf("\x1b[2;5fHello at (2,5)\n");

终端支持

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