跳到主要内容
ansicode

SGR 100–107 — 高亮背景色

8 种基础背景色的高亮变体。

字节形式

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

\\x1b[\x1b[101m (bright red bg, 100–107)
\\033[\033[101m
\\e[\e[101m
ESC [ESC [ 1 0 1 m
hex1b 5b 31 30 31 6d

实时预览

在浏览器中通过与解码器相同的分词器渲染 —— 无需打开终端。

100–107

说明

sgr-bg-basic SGR 40–47 的高亮背景版本,与 SGR 90–97 亮前景家族平行。1:1 映射 —— 100 亮黑、101 亮红、102 亮绿、103 亮黄、104 亮蓝、105 亮品红、106 亮青、107 亮白。100–107 范围与 90–97 同源于 IBM 的 aixterm,记录于 xterm-ctlseqs 作为规范扩展;ECMA-48 本身仅保留 SGR 40–47 + 48 + 49。上面矩阵中的每个终端都支持,包括 Linux console / fbcon 和 ConPTY,使其成为「跳出基础 8 色但又不落入 sgr-bg-256 索引调色板」的最佳便携选择。

亮色背景多用于状态行高亮、选中线索与严重级徽标(\x1b[97;101m FAIL \x1b[0m 在 CI 输出中实现「白字 + 亮红底」的错误标签)。与亮前景同样存在主题覆盖:实际 RGB 取决于用户的配色,定制配置下你发出的「亮红」可能呈深品红或柔粉。对色值精度有要求的徽标(状态指示、品牌色)应优先使用 sgr-bg-truecolor\x1b[48;2;220;0;0m)—— 真彩色路径绕开用户调色板。与前景不同,SGR 1(sgr-bold)在任何现代终端上都不影响背景色,因此困扰 SGR 30–37 的 bold-as-bright 怪癖在背景家族中没有对应物。

仅关闭背景用 \x1b[49m(SGR default-bg)—— 精准,不动前景和其他属性。整体重置用 \x1b[0m。表格输出的常见做法是行级交替背景:偶数行发 \x1b[100m(亮黑 / 暗灰底),行末换行前发 \x1b[49m —— 形成的「斑马纹」表格在任意基底配色下都易读。对应的 terminfo 展开(xterm-256color 上)是 tput setab 9tput setab 15,便于偏好 cap 名而非裸转义的可移植脚本使用。

规范出处: aixterm color extension

示例

bash
for c in 100 101 102 103 104 105 106 107; do printf "\033[${c}m  \033[0m"; done; echo
python
for c in range(100, 108): print(f'\x1b[{c}m  \x1b[0m', end='')
go
for c := 100; c <= 107; c++ { fmt.Printf("\x1b[%dm  \x1b[0m", c) }
javascript
for (let c = 100; c <= 107; c++) process.stdout.write(`\x1b[${c}m  \x1b[0m`)
c
for (int c = 100; c <= 107; c++) printf("\x1b[%dm  \x1b[0m", c);

在哪里用到

实际会发出该序列的工具——把抽象字节锚定到你已经用过的命令上。

  • delta深色主题对比度不够时,对增/删行槽位使用亮色背景
  • fzf可配置 --color=bg+:*——很多用户把当前行背景设为亮色
  • ranger, mc (Midnight Commander)选中行的背景色
  • vim, neovim Visual mode highlight on legacy 16-colour terminals
  • htop, btop column-header backgrounds

常见问题

针对这条序列,开发者真正会去搜索的问题的简短回答。

\x1b[101m\x1b[41;1m 是一回事吗?
不一样。SGR 100–107 是 aixterm 标准的背景槽位,直接指向调色板索引 8–15;SGR 1(bold)是字重属性,部分终端在前景通道下顺便把颜色变亮 —— 但这条副作用从未在背景通道标准化。所以 \x1b[41;1m 几乎所有地方都渲染为「普通红底上的粗体文字」,不是亮红底。要取调色板槽位 9 请写 \x1b[101m(aixterm),或用 \x1b[48;2;r;g;bm 取真彩色保证 RGB —— 见 sgr-bg-256sgr-bg-truecolor
为什么 CI 日志里 \x1b[101m\x1b[41m 看起来一样?
你的 CI 日志查看器(GitHub Actions、GitLab、Buildkite)降级到了 8 色 ANSI 渲染器,不识别 100–107 并把高亮位当作空操作 —— 回退到槽位 1(普通红)。若工具响应环境变量,设 FORCE_COLOR=3COLORTERM=truecolor;否则改发真彩色 \x1b[48;2;255;85;85m(xterm bright-red 等价值),大多数日志渲染器按原始 RGB 处理。不要硬刚渲染器 —— 用它能讲的色彩空间。

终端支持

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

相关序列

在家族食谱中

SGR 食谱 · 2. 基础 16 色 —— `\x1b[31m` 那一票