SGR 53 — 上划线
在字形上方绘制一条线 —— 与下划线相对。使用 SGR 55 关闭。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\x1b[53m\033[53m\e[53mESC [ 53 m1b 5b 35 33 6d实时预览
在浏览器中通过与解码器相同的分词器渲染 —— 无需打开终端。
说明
ECMA-48 §8.3.117 将 SGR 53 定义为 OVERLINED —— 在字形顶部沿水平方向绘制一条线,是下划线(SGR 4)的视觉镜像。字节序列 \x1b[53m。使用 SGR 55(\x1b[55m)关闭 —— 与 SGR 24 关闭下划线、SGR 29 关闭删除线对应。视觉上多数字体把它渲染为大写字母顶部上方的细线,部分模拟器画得稍粗或留出少许偏移给变音符。规范把 SGR 53 / 55 划进与下划线、删除线同一个强调家族 —— 三种大致并行的「在字形上画水平线」属性。
支持矩阵是现代 SGR 中分化最明显的。支持端:kitty、wezterm、contour、ghostty、foot,以及近期的 iTerm2 与 Konsole。不支持端:xterm、alacritty、Windows Terminal、gnome-terminal、Linux console、Apple Terminal.app *不* 渲染 —— 它们解析并静默吞掉 SGR 53 / 55(无报错、无视觉)。terminfo 完全没有为上划线定义能力 —— 即便在支持的终端上,tput 也没有可移植拼法,因此程序必须直接发字节。tmux 3.0+ 仅在显式配置 terminal-features '*:overline' 时转发 SGR 53;旧版本 tmux 会剥掉。「分化支持」的现实是:在不支持的终端上发出 SGR 53 没有任何视觉信号 —— 是静默破损的 UX。不留神的作者会信誓旦旦说「我处处都测过」,因为他测的全是 kitty。
防御性写法是把 SGR 53 与一个能在不支持终端上幸存的回退配对。最常见做法:同时为每个字符额外发 Unicode 结合上划线(U+0305,COMBINING OVERLINE)—— 渲染 SGR 53 的终端会同时显示两者(一道无害的冗余上划线),忽略 SGR 53 的终端仍能在每个字形上看到组合上划线。其他回退:用 U+203E OVERLINE 字符做排版前后缀;或启动时检测终端能力,运行时终端不在支持名单内时彻底跳过上划线强调。回退至关重要的常见用法:NATO 消息上划线约定、日志严重级标记(在 ALERT 行上加上划线)、区分「与划掉不同」的内容、突出帮助文本中的快捷键。color-only-signal 无障碍陷阱同样适用 —— 屏幕阅读器完全忽略上划线,绝不能让它独自承担语义;务必搭配文本标签。相关:sgr-underline(SGR 4 / 24 —— 上划线在视觉上补足的下划线镜像)、sgr-strikethrough(SGR 9 / 29 —— 另一种「画水平线」强调,矩阵分化程度与上划线相近)、sgr-reset(SGR 0 —— 一并清除上划线及其他所有属性)。
规范出处: ECMA-48 §8.3.117 (SGR parameter 53)
示例
printf '\033[53moverlined\033[55m back\033[0m\n'print('\x1b[53moverlined\x1b[0m')fmt.Print("\x1b[53moverlined\x1b[0m")console.log('\x1b[53moverlined\x1b[0m')printf("\x1b[53moverlined\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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 不支持 | 不支持 | 不支持 | 部分 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 支持 | 不支持 | 部分 | 支持 | 支持 |