跳到主要内容
ansicode

SGR 21 — 双下划线

为文本添加双下划线 —— 与单下划线(SGR 4)不同。

字节形式

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

\\x1b[\x1b[21m
\\033[\033[21m
\\e[\e[21m
ESC [ESC [ 21 m
hex1b 5b 32 31 6d

说明

双下划线。ECMA-48 §8.3.117 把 SGR 21 定义为 `DOUBLY UNDERLINED`。**注意**:历史上部分终端(早期 xterm 版本、某些 Linux 控制台字体)把 SGR 21 视作 `BOLD OFF` —— 这是硬件终端时代加粗与双下划线都属于「强度」标志的遗留行为。现代 xterm、kitty、wezterm、iTerm2、Windows Terminal、ghostty、alacritty 都按 ECMA-48 语义实现。若需兼容老旧终端,可改用 Kitty 的下划线样式扩展 `\x1b[4:2m` —— 明确表示双下划线,且被同样这批现代终端 + kitty 支持。关闭方式 `\x1b[24m`(与单下划线相同)。

规范出处: ECMA-48 §8.3.117 (SGR parameter 21)

示例

bash
printf '\033[21mdouble underline\033[24m back\033[0m\n'
python
print('\x1b[21mdouble underline\x1b[0m')
go
fmt.Print("\x1b[21mdouble underline\x1b[0m")
javascript
console.log('\x1b[21mdouble underline\x1b[0m')
c
printf("\x1b[21mdouble underline\x1b[0m\n");

终端支持

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

相关序列

在家族食谱中

SGR 食谱 · 6. SGR 冒号子参数 —— 真正符合标准的写法