跳到主要内容
ansicode

OSC 110 / 111 / 112 — 重置默认前景 / 背景 / 光标颜色

在 OSC 10 / 11 / 12 修改后,把终端的默认前景、背景或光标色恢复为用户设置。

字节形式

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

\\x1b[\x1b]110\x07 (reset fg) \x1b]111\x07 (reset bg) \x1b]112\x07 (reset cursor)
\\033[\033]110\007 / \033]111\007 / \033]112\007
\\e[\e]110\a / \e]111\a / \e]112\a
ESC [ESC ] N BEL
hex1b 5d 31 31 30 / 31 31 31 / 31 31 32 07

说明

OSC 10 / 11 / 12(设置 fg / bg / 光标色)的重置伙伴。无负载发送其中一条,会把对应值恢复为用户在终端偏好中的设置 —— 比猜应该传什么给 OSC 10/11/12 才能撤销修改要友好得多。短暂改写默认色的程序(主题切换器、演示、需要捕获干净基线的录屏工具)退出时都应发送对应的 `11X`。OSC 112 是 xterm 特有(针对光标),iTerm2 亦支持。发送 `\x1b]110\x07` 等价于「发 `\x1b]10;?\x07` 查询后再重发原值」,但省掉一次往返。

规范出处: xterm-ctlseqs (OSC 110 / 111 / 112)

示例

bash
printf '\033]11;#000000\007'   # override bg to pure black\n# … later …\nprintf '\033]111\007'           # restore user default bg
python
import sys; sys.stdout.write('\x1b]111\x07')
go
fmt.Print("\x1b]111\x07")
javascript
process.stdout.write('\x1b]111\x07')
c
printf("\x1b]111\x07");

终端支持

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

相关序列

在家族食谱中

SGR 食谱 · 5. OSC 调色板覆盖 —— 直接把槽位本身改了