SGR 21 — 双下划线
为文本添加双下划线 —— 与单下划线(SGR 4)不同。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[21m\\033[
\033[21m\\e[
\e[21mESC [
ESC [ 21 mhex
1b 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)
示例
printf '\033[21mdouble underline\033[24m back\033[0m\n'print('\x1b[21mdouble underline\x1b[0m')fmt.Print("\x1b[21mdouble underline\x1b[0m")console.log('\x1b[21mdouble underline\x1b[0m')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
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 部分 | 不支持 | 支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 部分 | 支持 | 不支持 | 不支持 |