SGR 1 — 加粗 / 高亮
将后续文本渲染为加粗(在某些终端上为高亮色)。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\x1b[1m\033[1m\e[1mESC [ 1 m1b 5b 31 6d实时预览
在浏览器中通过与解码器相同的分词器渲染 —— 无需打开终端。
说明
在多数现代终端(xterm、iTerm2、kitty、alacritty、wezterm、Windows Terminal、gnome-terminal、konsole)上启用加粗字重 —— 实现方式是切换到当前字体的 bold 变体,因此「加粗」的视觉取决于用户的字体选择;部分等宽字体自带的 bold 字形较差,用户会在终端配置中关闭。
历史遗留的痛点是 bold-as-bright:Linux console / fbcon 以及部分使用 VGA 风格字体的复古模拟器根本没有加载粗体字形文件,因此 SGR 1 反而会将当前前景色调亮 —— 将颜色 N(30–37)映射到其高亮变体 N+8(90–97)。xterm 在 boldColors X 资源开启且未单独指定加粗颜色时也做同样的颜色提升。实际效果:发送 \x1b[1;31mERROR 的代码在 iTerm2 上是红色加粗,但在树莓派 tty 上会是亮红(无字重变化)。ConPTY / 旧版 cmd.exe 同样回落到亮色。如果想要「加粗字重 + 精确红色」,请显式写亮色(\x1b[1;91mERROR)—— 在两种解释下都幂等。
保留其他属性而仅关闭加粗时发送 \x1b[22m(SGR 22,普通字重;它同时清除 sgr-dim SGR 2)。不要用 \x1b[21m 关闭加粗 —— 其 ECMA-48 原意为「双下划线」(见 sgr-double-underline),仅少数终端将其重载为关闭加粗,跨终端会冲突。规范做法:精准开关用 \x1b[1m…\x1b[22m;同时收尾颜色/其他状态则用 \x1b[1m…\x1b[0m。
规范出处: ECMA-48 §8.3.117 (SGR parameter 1)
示例
printf '\033[1mbold\033[22m normal\033[0m\n'print('\x1b[1mbold\x1b[0m')fmt.Print("\x1b[1mbold\x1b[0m")console.log('\x1b[1mbold\x1b[0m')printf("\x1b[1mbold\x1b[0m\n");在哪里用到
实际会发出该序列的工具——把抽象字节锚定到你已经用过的命令上。
- git log, git status引用名、分支标签、提交标题前缀
- gcc, clang诊断信息开头的 file:line: 前缀
- man pages (NAME, SYNOPSIS headings)
- npm, pnpm package names in tree output
- brew install summaries
常见问题
针对这条序列,开发者真正会去搜索的问题的简短回答。
\x1b[22m能取消\x1b[1m吗?- 可以。
\x1b[22m是对应的「常规强度」关闭码——同时清掉加粗与暗淡(ECMA-48 把两者绑在一起),不影响颜色、斜体、下划线等其他属性。只想去掉字重时用它而非\x1b[0m。 - 为什么我的加粗红字在某些终端上变成了亮红?
- 这是 xterm 历史行为:加粗与基本 30–37 色组合时,许多终端(xterm、macOS Terminal、gnome-terminal 默认配置、Linux 控制台)会把颜色映射到亮色 90–97 槽位而不去加粗字形。现代终端(iTerm2、kitty、alacritty、ghostty、Windows Terminal)会同时显示加粗 + 颜色。若想严格只加粗不变亮,直接发
\x1b[1;91m显式请求亮色即可。
终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 部分 | 支持 | 支持 | 支持 | 部分 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |