SGR 39 — 默认前景色
仅重置前景色(保留其他属性与背景色)。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\x1b[39m\033[39m\e[39mESC [ 3 9 m1b 5b 33 39 6d实时预览
在浏览器中通过与解码器相同的分词器渲染 —— 无需打开终端。
说明
ECMA-48 §8.3.117 称 SGR 39 为「default display colour」(默认显示色)—— 字节序列 \x1b[39m,CSI 后跟 3 9 再以 m 收尾。仅重置前景通道 —— 背景色、加粗、斜体、下划线、闪烁、反显、删除线以及其他所有 SGR 属性原样保留。与 \x1b[49m(SGR 49,默认背景色)相对。这里的「默认」前景指用户主题对非彩色文本指定的颜色 —— 深色主题通常近白、浅色主题通常近黑 —— 并非某个固定 RGB 值,这意味着在操作者终端上显示良好的前景,到了反相主题的用户那里可能接近不可见。
可移植性 —— 在所有 VTxxx 衍生模拟器(xterm、iTerm2、kitty、alacritty、wezterm、gnome-terminal、Konsole、Ghostty)、Linux console、现代 Windows Terminal 与 ConPTY 1809+ 上通用。少数极老终端遗留的 VT220 之前的意外:把 SGR 39 当成「全部重置」处理 —— 现代代码可忽略,但这解释了为何部分遗留文档仍建议「不要用 39,改用 SGR 0 + 重新应用属性」。terminfo cap op(orig pair)发出 \x1b[39;49m,即「仅重置两个颜色通道」的标准对。tmux 原样转发 SGR 39。Windows 旧 cmd.exe(ConPTY 之前)完全不识别 SGR 39 —— 当前前景保持原样。
SGR 39 *本身就是* 关闭码 —— 默认状态即关闭,没有另外的「默认前景关闭码」。最有用的组合是 \x1b[39;49m(等价于 tput op),可在不触碰加粗 / 斜体 / 下划线的前提下重置两个颜色通道 —— 正是「回到普通颜色但保留强调」的配方。别把 SGR 39 与 SGR 0(sgr-reset)混淆;0 会清除所有属性,包括加粗与下划线,而 SGR 39 只精准重置前景色。相关:sgr-fg-basic(SGR 30-37,SGR 39 关闭的基本 8 色前景)、sgr-default-bg(SGR 49 对应的背景重置)、sgr-reset(SGR 0 完整属性重置)。
规范出处: ECMA-48 §8.3.117 (SGR parameter 39)
示例
printf '\033[1;31mERROR\033[39m bold continues\033[0m\n'print('\x1b[31mred\x1b[39m default\x1b[0m')fmt.Print("\x1b[31mred\x1b[39m default\x1b[0m")console.log('\x1b[31mred\x1b[39m default\x1b[0m')printf("\x1b[31mred\x1b[39m default\x1b[0m\n");在哪里用到
实际会发出该序列的工具——把抽象字节锚定到你已经用过的命令上。
- chalk (Node) reset helpers`chalk.reset.fg` 仅重置前景色,背景色保留
- colorama (Python) Fore.RESET发出 SGR 39,比 SGR 0 范围更小——保留 Style.BRIGHT 和 Back.* 设置
- fatih/color (Go) ResetForeground不影响背景色和属性状态
- lipgloss / charmbracelet apps — scoped fg reset between segments
- ncurses A_NORMAL on a fg-only attribute
终端支持
- 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |