跳到主要内容
ansicode

SGR 39 — 默认前景色

仅重置前景色(保留其他属性与背景色)。

字节形式

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

\\x1b[\x1b[39m
\\033[\033[39m
\\e[\e[39m
ESC [ESC [ 3 9 m
hex1b 5b 33 39 6d

实时预览

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

red fg back to default fg

说明

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)

示例

bash
printf '\033[1;31mERROR\033[39m bold continues\033[0m\n'
python
print('\x1b[31mred\x1b[39m default\x1b[0m')
go
fmt.Print("\x1b[31mred\x1b[39m default\x1b[0m")
javascript
console.log('\x1b[31mred\x1b[39m default\x1b[0m')
c
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
支持

相关序列

在家族食谱中

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