跳到主要内容
ansicode

DECSCUSR — 光标形状

切换光标形状:方块、下划线或竖线(可选是否闪烁)。

字节形式

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

\\x1b[\x1b[N\x20q (N = 0..6)
\\033[\033[1 q
\\e[\e[1 q
ESC [ESC [ N SP q
hex1b 5b <N> 20 71

说明

设置光标样式。参数同时决定形状与闪烁:`0` 或 `1` = 闪烁方块(默认),`2` = 实心方块,`3` = 闪烁下划线,`4` = 实心下划线,`5` = 闪烁竖线,`6` = 实心竖线。末字节 `q` 前需要一个字面 SPACE(0x20)作为中间字节。Vim 的 `t_SI`/`t_EI` 与不少 shell 使用 `\x1b[6 q`(竖线)表示插入模式,`\x1b[2 q`(方块)表示普通模式。退出时使用 `\x1b[0 q` 恢复用户默认光标。

规范出处: xterm-ctlseqs (DECSCUSR, CSI Ps SP q)

参数

0用户默认光标
1闪烁方块
2实心方块
3闪烁下划线
4实心下划线
5闪烁竖线
6实心竖线

示例

bash
printf '\033[6 q'   # vertical bar (insert mode)\nprintf '\033[2 q'   # block (normal mode)\nprintf '\033[0 q'   # restore default
python
import sys; sys.stdout.write('\x1b[6 q')
go
fmt.Print("\x1b[6 q")
javascript
process.stdout.write('\x1b[6 q')
c
printf("\x1b[6 q");

终端支持

xterm
支持
Linux console (fbcon)
部分
macOS Terminal.app
支持
iTerm2
支持
Windows Terminal
支持
cmd.exe / ConPTY
部分
kitty
支持
alacritty
支持
WezTerm
支持
Ghostty
支持
GNOME Terminal
支持
Konsole
支持
tmux
不支持
GNU screen
不支持

相关序列

在家族食谱中

CSI 食谱 · 6. 插入 / 删除 / 光标形状 —— IL / DL / ICH / DCH / ECH + DECSCUSR