全部 ANSI 转义序列
本站收录的 141 条 ANSI / VT 转义序列,按协议家族分组 —— SGR 颜色与文本属性、CSI 光标与擦除、DEC 私有模式、OSC 终端控制、ESC 双字节裸序列、DCS 设备控制字符串,以及 C0 单字节控制。可按 slug、标题、字节形式或规范关键字筛选,直接跳转到对应页面。
全部序列,按家族分组
未找到匹配的序列。请尝试其他关键词、字节形式或家族名。
SGR(颜色与属性)
- SGR 0 — 重置 / 恢复默认
\x1b[0m清除所有文本属性和颜色,恢复终端默认状态。
- SGR 1 — 加粗 / 高亮
\x1b[1m将后续文本渲染为加粗(在某些终端上为高亮色)。
- SGR 2 — 暗淡 / 减弱
\x1b[2m以降低亮度(faint/暗淡)渲染后续文本。
- SGR 5 — 闪烁(慢速)
\x1b[5m使后续文本闪烁(≤ 150 次/分钟)。
- SGR 8 — 隐藏 / 不可见
\x1b[8m将后续文本渲染为不可见(光标仍前进)。
- SGR 9 — 删除线
\x1b[9m在后续文本中央绘制一条水平删除线。
- SGR 39 — 默认前景色
\x1b[39m仅重置前景色(保留其他属性与背景色)。
- SGR 49 — 默认背景色
\x1b[49m仅重置背景色(保留其他属性与前景色)。
- SGR 48;5;n — 256 色背景
\x1b[48;5;Nm从 xterm 256 色调色板中选择背景色。
- SGR 48;2;R;G;B — 24 位真彩色背景
\x1b[48;2;R;G;Bm直接指定 16,777,216 种 RGB 背景色之一。
- SGR 3 — 斜体
\x1b[3m将后续文本渲染为斜体;并非所有终端都支持。
- SGR 4 — 下划线
\x1b[4m为后续文本添加下划线。
- SGR 7 — 反相显示
\x1b[7m交换前景色与背景色。
- SGR 30–37 — 前景色(8 种基础色)
\x1b[31m (red, similarly 30–37)将前景色设置为 黑/红/绿/黄/蓝/品红/青/白 中的一种。
- SGR 40–47 — 背景色(8 种基础色)
\x1b[41m (red bg, 40–47)将背景色设置为 黑/红/绿/黄/蓝/品红/青/白 中的一种。
- SGR 90–97 — 高亮前景色
\x1b[91m (bright red, 90–97)8 种基础前景色的高亮变体(aixterm/xterm 扩展)。
- SGR 100–107 — 高亮背景色
\x1b[101m (bright red bg, 100–107)8 种基础背景色的高亮变体。
- SGR 38;5;n — 256 色前景
\x1b[38;5;Nm从 xterm 256 色调色板中选择前景色。
- SGR 38;2;R;G;B — 24 位真彩色前景
\x1b[38;2;R;G;Bm直接指定 16,777,216 种 RGB 前景色之一。
- SGR 21 — 双下划线
\x1b[21m为文本添加双下划线 —— 与单下划线(SGR 4)不同。
- SGR 53 — 上划线
\x1b[53m在字形上方绘制一条线 —— 与下划线相对。使用 SGR 55 关闭。
- SGR 26 — 比例间距(ECMA-48 定义;常见终端均忽略)
\x1b[26mECMA-48 把它定义为「启用比例间距」—— 但所有常见终端都不实现。记录这一陷阱。
- SGR 冒号子参数 — ITU-T T.416 替代写法(38:2:: / 48:2:: / 38:5:)
\x1b[38:2::255:128:64m (T.416) \x1b[38;2;255;128;64m (xterm-legacy)在扩展颜色子参数之间使用 `:`(0x3a)代替 `;`(0x3b)—— 规范认可的写法,可消除复合 SGR 与独立 SGR 的歧义。
- SGR 73 / 74 / 75 —— 上标 / 下标 / 取消
\x1b[73m superscript \x1b[74m subscript \x1b[75m neitherMintty 的上标 / 下标 SGR 对,现已被 Kitty 0.32+、WezTerm、foot 与 iTerm2 实现。是终端输出能不靠特殊字符排出数学、脚注与化学式的第一组 SGR。
CSI(光标与擦除)
- CUU / CUD / CUF / CUB — 移动光标
\x1b[NA (up; B down, C right, D left)将光标向上 / 下 / 右 / 左 移动 N 格。
- CNL / CPL — 光标下/上行
\x1b[NE (down N lines, col 1) \x1b[NF (up)将光标移动到下方(CNL)或上方(CPL)第 N 行的第 1 列。
- CHA — 光标水平绝对位置(列)
\x1b[NG将光标移动到当前行的第 N 列(从 1 开始)。
- CUP — 设置光标位置
\x1b[row;colH将光标移动到绝对行/列(从 1 开始)。
- ED — 清屏 (`\x1b[2J`)
\x1b[NJ擦除屏幕的部分或全部。
- EL — 行内擦除 (`\x1b[K`)
\x1b[NK擦除当前行的部分或全部。
- SU / SD — 向上 / 向下滚动
\x1b[NS (scroll up) \x1b[NT (scroll down)将屏幕内容向上(SU)或向下(SD)滚动 N 行,光标位置不变。
- DECSCUSR — 光标形状
\x1b[N\x20q (N = 0..6)切换光标形状:方块、下划线或竖线(可选是否闪烁)。
- DECSTR — 软终端重置
\x1b[!p将 DEC 私有模式与 SGR 重置为默认,但不清屏,也不清回滚缓冲。
- CBT — 光标反向制表(CSI Z)
\x1b[NZ将光标回退 N 个 tab 停位 —— 与按 Tab 键方向相反。
- TBC — 清除制表位(CSI g)
\x1b[g (clear current) \x1b[3g (clear all)清除一个或全部 tab 停位,改变 HT 和 CBT 的落点。
- DECSTBM — 设置上下边距(CSI r)
\x1b[T;Br定义垂直滚动区域 —— 区域外的行被固定,区域内的行参与滚动。
- SCOSC / SCORC — 保存 / 恢复光标(CSI s / u)
\x1b[s (save) \x1b[u (restore)CSI 风格的光标位置保存(s)与恢复(u)—— 与 ESC 7 / ESC 8(DECSC / DECRC)有别。
- CHT — 光标正向制表(CSI I)
\x1b[NI把光标按 tab 停位向前推进 N 次 —— Tab 键的可带参数版本。
- DA — 设备属性查询(CSI c / CSI > c)
\x1b[c (primary DA) \x1b[>c (secondary DA)询问终端的 VT 类型 —— 主查询(CSI c)返回支持特性,副查询(CSI > c)返回型号与固件。
- DSR — 设备状态报告(CSI 5n / CSI 6n)
\x1b[5n (status request) \x1b[6n (cursor pos request)查询终端状态(5n)或当前光标位置(6n)—— TUI 用以测量终端大小的反向通道。
- DECRQM — 模式状态查询(CSI ? Ps $ p)
\x1b[?Ps$p询问终端某个 DEC 私有模式是否已启用 —— 运行时特性检测的标准方式。
- ICH — 插入字符(CSI Pn @)
\x1b[Pn@把当前行剩余内容右移 N 格并以空白填充间隙 —— vim 插入模式的底层原语。
- DCH — 删除字符(CSI Pn P)
\x1b[PnP删除光标处 N 个单元,把剩余内容左移填补 —— ICH 的逆操作。
- IL — 插入行(CSI Pn L)
\x1b[PnL在光标所在行打开 N 行空行,把后续行向下推(在滚动区域内)—— vim 'O' 命令的底层原语。
- DL — 删除行(CSI Pn M)
\x1b[PnM删除从光标所在行起的 N 行,把后续行向上拉(在滚动区域内)—— vim 'dd' 命令的底层原语。
- ECH — 擦除字符(CSI Pn X)
\x1b[PnX在光标处原地擦除 N 个单元 —— 形状与 DCH 相同,但行剩余内容不左移。
- REP — 重复前一个字符(CSI Pn b)
\x1b[Pnb把上一字符重复打印 N 次 —— 节省同字符长串带宽的小窍门。
- VPA — 垂直行绝对定位(CSI d)
\x1b[<row>d将光标移动到绝对行,保持当前列不变。
- HVP — 水平与垂直定位(CSI f,CUP 的别名)
\x1b[<row>;<col>f将光标移动到绝对 (row, col) —— 语义与 CUP 完全相同,仅末字节用 `f` 而非 `H`。
- XTWINOPS — 窗口操作(CSI Ps ; Ps ; Ps t)
\x1b[<Ps>t or \x1b[<Ps>;<Pa>;<Pb>txterm 的窗口操作族 —— 调整大小、最小化、置顶/置底、查询尺寸、推入/弹出标题。
- DECSED / DECSEL — 选择性擦除屏幕 / 行(CSI ? Ps J / CSI ? Ps K)
\x1b[?<Ps>J (DECSED) \x1b[?<Ps>K (DECSEL)仅擦除未受保护的单元 —— 显示区(DECSED)或当前行(DECSEL)。即 ED / EL 的私有模式对照。
- SL / SR — 左滚 / 右滚(CSI Ps SP @ / CSI Ps SP A)
\x1b[<Ps> @ (SL) \x1b[<Ps> A (SR)将屏幕内容左滚(SL)或右滚(SR)Ps 列 —— 与 CSI S / CSI T 对应的水平方向版本。
- DECSCA — 选择字符保护属性(CSI Ps " q)
\x1b[<Ps>"q把后续写入的单元标记为受 DECSED / DECSEL 保护(Ps=1)或不受保护(Ps=0 / 2)。
- DECSLRM — 设置左右边距(CSI Pl ; Pr s)
\x1b[<Pl>;<Pr>s把光标水平移动与滚动限制在列 Pl…Pr —— 与 DECSTBM 对应的水平方向版本。
- XTPUSHCOLORS / XTPOPCOLORS / XTREPORTCOLORS — 调色板栈(CSI # P / # Q / # R)
\x1b[#P (push) \x1b[#Q (pop) \x1b[#R (report)通过进程级栈保存 / 恢复 / 查询 xterm 的 ANSI 调色板 —— 适合需要临时修改调色板的 TUI。
- DECDC / DECIC — 删除 / 插入列(CSI Pn ' ~ / CSI Pn ' })
\x1b[<Pn>'~ (DECDC) \x1b[<Pn>'} (DECIC)在光标处删除(DECDC)或插入(DECIC)Pn 列 —— DL(CSI Pn M)与 IL(CSI Pn L)的列向版本。
- XTMODKEYS — 修改键盘上报模式(CSI > Pp ; Pv m)
\x1b[><Pp>;<Pv>m运行时切换 xterm 的 modifyKeyboard / modifyCursorKeys / modifyFunctionKeys / modifyOtherKeys 资源 —— 是 Ctrl+字母、Alt+字母 等键位精准上报的基础。
- XTSMTITLE / XTRMTITLE — 设置 / 重置标题显示模式(CSI > Ps ; … t / T)
\x1b[><Ps>;<Ps>…t (set) \x1b[><Ps>;<Ps>…T (reset)切换 xterm 解读 / 返回窗口标题与图标名称字符串的方式 —— 十六进制 vs UTF-8 编码、截断、设置 vs 查询行为。
- DECSWBV / DECSMBV — 设置警告 / 边距铃音量(CSI Ps SP t / CSI Ps SP u)
\x1b[<Ps> t (DECSWBV) \x1b[<Ps> u (DECSMBV)调整 C0 BEL(DECSWBV)与右边距警告铃(DECSMBV)的音量 —— 现代模拟器几乎一致忽略。
- SGR / urxvt 鼠标编码 — 鼠标上报的线缆格式(CSI M / CSI < / CSI)
\x1b[M<Cb><Cx><Cy> (legacy) \x1b[<<Cb>;<Cx>;<Cy>M|m (SGR ?1006) \x1b[<Cb>;<Cx>;<Cy>M (urxvt ?1015)终端上报鼠标事件的三种线缆格式:传统 CSI M Cb Cx Cy、现代 SGR ?1006、urxvt ?1015 —— DECSET ?100x 启用追踪后,输入流里到底出现什么。
- XTVERSION — 上报终端名称与版本(CSI > Pp q)
\x1b[>0q (query) reply: \x1bP>|<name> <version>\x1b\\向终端询问可读的名称 + 版本字符串 —— 替代 DECDA 用于功能检测的现代方案,已被 Helix、Zellij、Neovim 等采用。
- CSI ? Ps n — 私有 DSR(扩展状态查询)
\x1b[?<Ps>nDEC 私有设备状态报告 —— 扩展光标位置(?6 DECXCPR 含页号)、打印机 / UDK / 定位器 / 宏空间 / 内存校验和等状态。
- HPA / HPR / VPR — 绝对与相对定位(CSI ` / CSI a / CSI e)
\x1b[<col>` (HPA) \x1b[<n>a (HPR) \x1b[<n>e (VPR)ECMA-48 中保留行 / 列的光标移动 —— HPA(绝对列)、HPR(相对列)、VPR(相对行)—— 与 VPA 配套的完整四元。
- XTSMGRAPHICS — Sixel / ReGIS / 颜色寄存器容量查询 + 设置(CSI ? Pi ; Pa ; Pv S)
\x1b[?<Pi>;<Pa>;<Pv>S查询 / 设置终端的图形上限 —— sixel 颜色寄存器数、sixel 图形区域、ReGIS 图形区域。图像感知 TUI 决定位图大小的标准入口。
- DECSASD / DECSSDT — 状态显示路由与类型(CSI Ps $ } / CSI Ps $ ~)
\x1b[<Ps>$} (DECSASD) \x1b[<Ps>$~ (DECSSDT)选择后续输出写入哪个显示面(主屏 vs 状态行 —— DECSASD),以及状态行的用途(DECSSDT)—— DEC VT320 的分屏状态行。
- XTQMODKEYS — 查询 modifyKeys 当前取值(CSI ? Pp m)
\x1b[?<Pp>m向 xterm 查询当前 modifyKeyboard / modifyCursorKeys / modifyFunctionKeys / modifyOtherKeys 的取值 —— XTMODKEYS 的配套查询。
- XTPUSHSGR / XTPOPSGR / XTREPORTSGR — SGR 栈(CSI Ps + p / + q / + r)
\x1b[#{ (XTPUSHSGR, alt: CSI Pm + p) \x1b[#} (XTPOPSGR, alt: CSI + q) \x1b[+r (XTREPORTSGR)通过栈保存 / 恢复 / 查询当前 SGR 属性 —— XTPUSHCOLORS 在调色板栈外,对 SGR 属性的对应方案。
- DECSCPP — 选择每页列数(CSI Pn $ |)
\x1b[80$| (80 cols) \x1b[132$| (132 cols)把活动页面调整为 80 或 132 列 —— DECCOLM 用私有模式表达的同一行为,DECSCPP 是其参数化等价物。
- 副 DA 回复解码器 — `CSI > Pp ; Pv ; Pc c` 型号 / 固件 / 卡带
\x1b[>Pp;Pv;Pcc副 Device Attributes 回复的解码参考 —— 每个 Pp 型号码的含义,以及 kitty / wezterm / alacritty / iTerm2 / Ghostty 如何把自身版本编入 Pv。
- XTSAVE / XTRESTORE — 保存 / 恢复 DEC 私有模式(`CSI ? Pm s` / `CSI ? Pm r`)
\x1b[?<Pm>s (save) \x1b[?<Pm>r (restore)把一个或多个 DEC 私有模式状态压栈,稍后恢复 —— tmux / screen / fzf 用以安全地切换鼠标 / 备用屏 / 粘贴模式而不破坏用户设置的基础机制。
- DECSCL — 选择一致性级别(`CSI Pl ; Pc " p`)
\x1b[<Pl>;<Pc>" p选择 VT100 / VT200 / VT300 / VT400 / VT500 兼容级别 —— 控制终端识别哪个子集的转义序列,并决定 C1 以 7 位还是 8 位发送。隐式先执行硬重置(RIS)。
- DECSTR 副作用 —— `\x1b[!p` 究竟重置哪些模式
\x1b[!pDECSTR(软重置)会恢复到默认的每一个 DEC 模式 / 属性枚举参照 —— 哪些会被清、哪些保留、xterm / kitty / iTerm2 在哪里发生分歧。
- DECRPM 解码 —— 解析 DECRQM 回复(`CSI ? Ps ; Pm $ y`)
\x1b[?<Ps>;<Pm>$y (private) \x1b[<Ps>;<Pm>$y (ANSI)解析 DECRQM 回复 `CSI ? Ps ; Pm $ y`(以及 `CSI Ps ; Pm $ y`)—— `Pm` 数值说明该模式当前是 设置 / 重置 / 永久开 / 永久关 / 不识别 中的哪一种。
- DEC 定位器套件 —— DECELR / DECEFR / DECSLE / DECRQLP(鼠标 / 定位器事件)
\x1b[<Pn>;<Pu>'z \x1b[<Pm>'{ \x1b[<Pt>;<Pl>;<Pb>;<Pr>'w \x1b[<Ps>'|DEC 原版指点设备协议(比 xterm SGR 鼠标模式早十年)。四个序列分别 启用 / 过滤 / 选择 / 查询定位器事件;现代交互式 UI 改用 SGR 鼠标模式(`?1000` + `?1006`)。
- DECREQTPARM / DECREPTPARM —— 请求并报告终端参数(`CSI Ps x`)
\x1b[<Ps>xVT100 时代的遗留探测 —— 让终端报告其串口参数(校验、位宽、波特率、时钟倍数、标志位)。比 DA / DA2 / XTVERSION 都早;现今几乎不该再用,但 xterm 与多数现代模拟器仍以合成默认值作答。
- DECCARA / DECRARA —— 在矩形区域中改写 / 反转字符属性(`CSI Pt;Pl;Pb;Pr;Ps;… $ r` / `$ t`)
\x1b[<Pt>;<Pl>;<Pb>;<Pr>;<Ps>;…$r (DECCARA) \x1b[<Pt>;<Pl>;<Pb>;<Pr>;<Ps>;…$t (DECRARA)对一矩形区域内的字符仅改写或异或 SGR 属性,不改动字符本身 —— `dec-rect-ops` 中复制 / 填充 / 擦除三件套的「矩形属性」兄弟。
- DECPS —— 播放声音(`CSI Pv ; Pd ; Pn1 [; …] , ~`)
\x1b[<Pv>;<Pd>;<Pn1>[;<Pn2>…],~DEC VT520 音乐音播放 —— `Pv` 音量、`Pd` 时长、随后一个或多个 `Pn` 类 MIDI 音符号。冷门但 xterm、WezTerm、Ghostty、mlterm 都实现 —— 这是用 ANSI 让终端按指定音高响铃的唯一方式。
- DECTABSR —— 制表位报告(`CSI 2 $ w`)
\x1b[2$w让终端以 DCS 报告形式输出当前水平制表位。补全往返链:HTS(`esc-hts`)设置、TBC(`csi-tbc`)清除、DECTABSR 查询当前集合。
- DECRQCRA / DECCKSR —— 请求矩形区域校验和(`CSI Pi;Pg;Pt;Pl;Pb;Pr*y`)
\x1b[Pi;Pg;Pt;Pl;Pb;Pr*y reply \x1bP<Pi>!~<hex4>\x1b\\请终端对矩形区域的单元算 16 位校验和(`CSI Pi;Pg;Pt;Pl;Pb;Pr*y`),DCS DECCKSR 回(`\x1bP<Pi>!~<hex4>\x1b\\`)。xterm vttest / ConPTY 一致性测试用作金标。
- DECLL —— 加载 LED 灯(`CSI Ps q`,无 SP 中间字节)
\x1b[Ps q开关键盘前面板 L1–L4 LED(`CSI Ps q`)。在 Linux 控制台 terminfo 里以 `KEYBOARD_LED 1/2/3/4` 留存 —— 现代模拟器除 xterm + Linux console 外静默忽略。
- DECCRA / DECFRA / DECERA / DECSERA —— 矩形区域的复制 / 填充 / 擦除 / 选择性擦除
\x1b[<Pts>;<Pls>;<Pbs>;<Prs>;<Pps>;<Ptd>;<Pld>;<Ppd>$v DECCRA\n\x1b[<Pch>;<Pt>;<Pl>;<Pb>;<Pr>$x DECFRA\n\x1b[<Pt>;<Pl>;<Pb>;<Pr>$z DECERA\n\x1b[<Pt>;<Pl>;<Pb>;<Pr>${ DECSERADEC 矩形操作族里改字符内容的四件套 —— 复制一块、用某字模填、擦成空格、只擦未保护单元。与 DECCARA / DECRARA(改属性侧)以及 DECSACE(块 vs 流切换)配套。
- DECSACE —— 选择属性改写范围(`CSI Ps * x`)
\x1b[<Ps>*x切换 DECCARA / DECRARA 把矩形当作字面单元块(默认)还是从起点到终点的文本流。内容侧矩形操作(DECCRA / DECFRA / DECERA / DECSERA)不受影响。
- CSI Ps i —— 媒体复制(MC)—— 启用打印 / 关闭打印 / 打印行
\x1b[0i / \x1b[4i / \x1b[5i / \x1b[?4i / \x1b[?5iECMA-48 §8.3.82 控制,历史上把终端输出转给所连打印机。今日仍存于 xterm/mlterm 的「打印屏幕」钩子、IBM-3270 模拟器透传,以及私有模式 `CSI ? 4 / 5 i` 自动打印开关(被 `expect` 风格自动化使用)。
- DECRQDE / DECRPDE —— 请求 / 回报显示区范围(`CSI " v` / `" w`)
\x1b["v DECRQDE (request)\n\x1b[<Ph>;<Pw>;<Pml>;<Pmt>;<Pmp>"w DECRPDE (reply)VT420+ 的分页查询 —— 询问终端当前显示多少行 / 列,以及滚动窗口在页内存中的位置。让主机不必依赖 `tput lines / cols` 就能得知可视视口。
DEC 私有模式
- DECSC / DECRC — 保存与恢复光标
\x1b7 (save) \x1b8 (restore)保存并恢复光标状态(位置 + 属性)。
- DECSET 1049 — 备用屏幕缓冲
\x1b[?1049h (enter) \x1b[?1049l (leave)切换到独立屏幕缓冲区(vim/less 启动时使用)。
- DECTCEM ?25 — 显示/隐藏光标
\x1b[?25h (show) \x1b[?25l (hide)显示或隐藏文本光标。
- DECSET ?2004 — 括号粘贴模式
\x1b[?2004h (enable) \x1b[?2004l (disable)将粘贴文本用独立的转义标记包裹,让应用区分粘贴与键入。
- DECSET ?1000 / ?1006 — 鼠标跟踪
\x1b[?1000h (click only) \x1b[?1002h (cell drag) \x1b[?1003h (any motion) \x1b[?1006h (SGR encoding)以转义序列形式接收鼠标点击 / 拖拽 / 滚轮事件。
- DECAWM ?7 — 自动换行模式
\x1b[?7h (enable wrap) \x1b[?7l (disable)切换光标到达右边距时是否自动换到下一行(默认开启)。
- DECSET ?1004 — 焦点进出事件
\x1b[?1004h (enable) \x1b[?1004l (disable)让终端在窗口获得或失去键盘焦点时上报事件。
- DECSET ?2026 — 同步更新模式
\x1b[?2026h (begin frame) \x1b[?2026l (end frame)在帧结束信号到来前缓冲屏幕更新 —— 全屏重绘时消除闪烁。
- DECSET ?12 — 光标闪烁
\x1b[?12h (start blinking) \x1b[?12l (stop blinking)启用或关闭光标闪烁属性 —— 与光标形状无关。
- DECOM ?6 — 起点模式(把光标定位限制在滚动区域内)
\x1b[?6h (origin = region) \x1b[?6l (origin = screen)让光标的行列原点 (1,1) 变为 DECSTBM 滚动区域的左上角,而非整屏左上角。
- DECSET ?1047 — 仅切换备用屏(不保存光标)
\x1b[?1047h (enter alt) \x1b[?1047l (leave alt)切换备用屏但不保存光标 —— 比 ?1049 更原始的形式。
- DECSDM — Sixel 显示模式(CSI ? 80 h / l)
\x1b[?80h (set) \x1b[?80l (reset)选择 sixel 渲染完成后光标的停留位置 —— 图像左上角(设置)或图像下方(重置,现代默认)。
- DECSCNM — 反向视频屏幕模式(CSI ? 5 h / l)
\x1b[?5h (reverse) \x1b[?5l (normal)在整屏范围内全局交换前景色与背景色 —— 全屏的反向视频开关,与逐格 SGR 7 不同。
- DECSCLM — 平滑滚动模式(CSI ? 4 h / l)
\x1b[?4h (smooth) \x1b[?4l (jump)在平滑(逐帧一行的动画)与跳跃(瞬时)滚动间切换 —— DEC VT100 硬件时代的设置,现代模拟器几乎全部忽略。
- DECARM — 按键自动重复模式(CSI ? 8 h / l)
\x1b[?8h (repeat) \x1b[?8l (no repeat)切换终端在按住按键时是否重复发送字节 —— 对游戏与编辑器很重要,按住 `j` 不应狂刷缓冲。
- DECCOLM — 80 / 132 列模式(CSI ? 3 h / l)
\x1b[?3h (132 cols) \x1b[?3l (80 cols)在 80 列与 132 列页宽间切换 —— DEC VT100 旗舰「宽模式」开关,现代模拟器普遍以资源开关默认禁用。
- DECNCSM —— 切列宽时不清屏(`CSI ? 95 h / l`)
\x1b[?95h (set — preserve) \x1b[?95l (reset — clear)抑制 DECCOLM(及 DECSCPP)切列宽时隐含的清屏副作用。DECNCSM 开启后,在 80 / 132 列之间切换会保留单元内容,而非清空。
OSC(终端控制)
- OSC 0 / 2 — 设置窗口/图标标题
\x1b]0;TITLE\x07修改终端窗口的标题栏文本。
- OSC 8 — 内联超链接
\x1b]8;;URI\x07TEXT\x1b]8;;\x07在终端输出中渲染可点击超链接(gnome-terminal 3.26+、iTerm2、Windows Terminal、kitty 等)。
- OSC 10 / 11 — 设置默认前景 / 背景色
\x1b]10;#RRGGBB\x07 (set fg) \x1b]11;#RRGGBB\x07 (set bg)设置终端的默认前景色(OSC 10)或背景色(OSC 11),或查询当前值。
- OSC 52 — 系统剪贴板读写
\x1b]52;c;BASE64\x07 (set clipboard 'c' to BASE64 decoded bytes)通过终端设置(或查询)宿主系统剪贴板 —— 可跨 SSH 工作,无需 X11 转发。
- OSC 4 — 设置调色板颜色(与查询)
\x1b]4;N;#RRGGBB\x07 (set) \x1b]4;N;?\x07 (query)设置 256 色调色板中某一项颜色,或查询其当前值。
- OSC 9 — 桌面通知(iTerm2 / Windows Terminal)
\x1b]9;MESSAGE\x07从终端触发原生桌面通知 —— 长任务完成、构建结束等场景。
- OSC 7 — 当前工作目录提示
\x1b]7;file://HOST/PATH\x07把当前 shell 所在目录告知终端 —— 用于标签名、「在此目录新开标签」、远程感知的分屏工作流。
- OSC 110 / 111 / 112 — 重置默认前景 / 背景 / 光标颜色
\x1b]110\x07 (reset fg) \x1b]111\x07 (reset bg) \x1b]112\x07 (reset cursor)在 OSC 10 / 11 / 12 修改后,把终端的默认前景、背景或光标色恢复为用户设置。
- OSC 12 — 设置光标颜色(与查询)
\x1b]12;#RRGGBB\x07 (set) \x1b]12;?\x07 (query)覆写终端光标颜色,或通过 OSC 回报查询当前值。
- OSC 17 — 设置高亮(选区)背景色
\x1b]17;#RRGGBB\x07 (set) \x1b]17;?\x07 (query)修改终端在选中(高亮)文字后面绘制的背景色。
- OSC 19 — 设置高亮(选区)前景色
\x1b]19;#RRGGBB\x07 (set) \x1b]19;?\x07 (query)修改终端为选中(高亮)文字渲染的前景色。
- OSC 104 — 重置调色板颜色(单项或全部)
\x1b]104;N\x07 (reset index N) \x1b]104\x07 (reset all)把调色板中某一项 —— 或整个 256 色调色板 —— 恢复为终端用户配置的默认值。
- OSC 1 — 设置图标名(与窗口标题分离)
\x1b]1;ICON-NAME\x07独立于可见窗口标题设置 X11 风格的图标名 —— 历史上为窗口最小化时显示的标签。
- OSC 22 — 设置 X11 鼠标指针 / 光标名
\x1b]22;CURSOR-NAME\x07覆写终端窗口绘制的鼠标指针图形 —— 历史上为 xterm 特有,通过标准 X 光标名暴露。
- OSC 50 — 设置或查询字体(xterm 字体选择器)
\x1b]50;FONT-SPEC\x07 (set) \x1b]50;?\x07 (query)运行时切换终端显示字体,或查询当前字体 —— xterm 扩展,少数分叉亦实现。
- OSC 133 — 语义化提示符标记(FinalTerm A / B / C / D)
\x1b]133;A\x07 (prompt start) \x1b]133;B\x07 (command start) \x1b]133;C\x07 (output start) \x1b]133;D;<exit>\x07 (command end)标注提示符开始 / 命令开始 / 输出开始 / 命令结束,让终端能在提示符之间跳转、折叠输出、装饰退出码。
- OSC 1337 — iTerm2 内联图片与文件传输
\x1b]1337;File=name=<base64>;size=<bytes>;inline=1:<base64-data>\x07把图片、文件、或 iTerm2 私有状态嵌入终端字节流 —— Kitty / Sixel 后来主要取代的前身协议。
- OSC 9 ; 4 — ConEmu 进度指示器(Windows Terminal / Ghostty)
\x1b]9;4;<state>;<percent>\x07把实时进度百分比 / 暂停 / 错误状态推送到任务栏或标签图标 —— ConEmu 协议,被 Windows Terminal 1.18+ 标准化。
- OSC 10 / 11 / 12 查询 — 探测默认前景 / 背景 / 光标色(深色对浅色)
\x1b]10;?\x07 (fg) \x1b]11;?\x07 (bg) \x1b]12;?\x07 (cursor)向终端查询当前默认前景(10)/ 背景(11)/ 光标(12)色 —— 自动选择深色或浅色主题的标准做法。
- OSC 4 查询 — 读取 256 色调色板索引(`\x1b]4;<n>;?\x07`)
\x1b]4;<n>;?\x07向终端查询调色板索引 `n`(0–255)当前绑定的 RGB 值 —— 主题检查器、截屏工具与调色板迁移脚本常用。
ESC(独立转义序列)
- RIS — 重置到初始状态(终端硬重置)
\x1bc终端硬重置:清屏 + 清回滚、重置所有模式与 SGR、光标回到原点。
- HTS — 水平制表位设置(ESC H)
\x1bH在当前光标列设置一个 tab 停位 —— 与 TBC 互为伙伴。
- C1 控制字符 —— ESC 序列的 8 位单字节等价形式(0x80–0x9F)
\x9b CSI \x9d OSC \x9c ST \x90 DCS \x85 NEL \x88 HTS \x84 IND \x8d RI8 位 C1 控制字节(0x80..0x9F)—— CSI、OSC、ST、DCS、NEL、HTS、IND、RI —— 及其 7 位 ESC <letter> 等价形式。
- DECKPAM / DECKPNM — 小键盘应用 / 数字模式(ESC = / ESC >)
\x1b= (DECKPAM) \x1b> (DECKPNM)在数字小键盘发送应用转义序列(\eOM / \eOj …)与发送 ASCII 数字之间切换 —— vim / less / readline 小键盘行为的基础。
- DECDHL / DECDWL / DECSWL — 双倍高 / 双倍宽行(ESC # 3 / # 4 / # 5 / # 6)
\x1b#3 (DHL top) \x1b#4 (DHL bottom) \x1b#5 (DECSWL) \x1b#6 (DECDWL)把当前行标记为双倍高(上半 / 下半)或双倍宽 / 单倍高 —— DEC 的逐行大横幅原语,VT100 启动画面常用。
- DECALN — 屏幕对齐测试图案(ESC # 8)
\x1b#8用大写 `E` 字形填满整屏 —— DEC 的 CRT 对齐测试,验证「页面缓冲是否正确接通」的标准烟囱测试。
- 单次切换 / 锁定切换族 —— SS2 / SS3 / LS2 / LS3 / LS1R / LS2R / LS3R
\x1bN SS2 \x1bO SS3 \x1bn LS2 \x1bo LS3 \x1b~ LS1R \x1b} LS2R \x1b| LS3RISO 2022 字符集切换:单次调用 G2 / G3(SS2 / SS3),或将 GL / GR 锁定到不同 G 集(LS2 / LS3 / LS1R / LS2R / LS3R)。与 `\x1b(` / `\x1b)` / `\x1b*` / `\x1b+` G 集指派配对。
- APC —— 应用程序命令(`ESC _ … ESC \\` / `\x9F … \x9C`)
\x1b_<body>\x1b\\ (7-bit) \x9f<body>\x9c (8-bit C1)ECMA-48 为应用对应用消息保留的字符串引导符。现代用途:Kitty 图形协议、VS Code shell 集成、Windows Terminal API 补丁。与 DCS / OSC / PM / SOS 同辈。
DCS(设备控制字符串)
- DCS Sixel — 内联栅格图像(ESC P q … ESC \)
\x1bPq <sixel data> \x1b\\通过 Sixel 设备控制载荷在终端流中嵌入像素图像。
- Kitty 图形协议 —— 内联像素图像(ESC _ G … ESC \)
\x1b_Ga=T,f=100,m=1;BASE64_CHUNK\x1b\\Sixel 的现代替代:通过 Kitty APC 帧把 PNG / RGBA 字节流式发送给终端,配合合理的分块与放置协议。
- DECRQSS — 请求选区或设置(DCS $ q ... ST)
\x1bP$q<P>\x1b\\请求终端报告任一 SGR / 模式 / 边距 / 光标形状当前值 —— DCS 通用查询。
- XTGETTCAP — 请求 terminfo 能力(DCS + q ... ST)
\x1bP+q<HEX-NAME>;<HEX-NAME>...\x1b\\按名称请求终端报告 terminfo 能力值 —— 运行时探测真彩、RGB、OSC 52 等的标准方法。
- DECUDK — 定义用户自定义键(DCS Pc;Pl|Ky/St;... ST)
\x1bPPc;Pl|Ky/St;Ky/St;...\x1b\\运行时重映射 DEC 用户自定义功能键(F6–F20)—— DEC VT 遗留,xterm 及其分叉仍解析。
- DECDLD — 动态可重定义字符集(DCS ... { ... ST)
\x1bPPfn;Pcn;Pe;Pcms;Pw;Pt{Dscs Sxbp1;Sxbp2;...\x1b\\把软字模位图下载到终端的某个槽位,便可与内置字体并列显示 —— DEC VT220+ 纯遗留特性。
- DECRSPS — 恢复呈现状态(DCS $ t ... ST)
\x1bP1$t<saved-state>\x1b\\ (cursor) \x1bP2$t<saved-state>\x1b\\ (tab stops)DECRQSS 的反向操作 —— 把先前保存的光标 / SGR / 边距快照回灌,恢复终端精确状态。
- DECDMAC / DECINVM — 定义与调用宏(DCS Pn ; Pn ; Pn ! z ... ST / CSI Pn * z)
\x1bP<Pid>;<Pdt>;<Penc>!z<MACRO-BODY>\x1b\\ (define) \x1b[<Pid>*z (invoke)用数字句柄存储一段字节序列(DECDMAC),按需回放(DECINVM)—— DEC VT520 的终端内置宏录制器。
- 通过 DECRQSS 查询 DECSCUSR — 读取当前光标形状(`\x1bP$q q\x1b\\`)
\x1bP$q q\x1b\\光标形状参数的查询往返 —— 通过 DECRQSS 查询 DECSCUSR,终端回复当前 `Ps SP q` 设置。
- DECRQUPSS / DECAUPSS —— 请求 / 指派用户首选补充字符集
\x1b[&u request \x1bP<Ps>!u<D…D>\x1b\\ assign查询(`CSI & u`)与指派(`DCS Ps ! u … ST`)在未触发 Locking Shift 时映射进 GR 槽位的补充字符集 —— 补完 `single-locking-shift` 留下的「谁占着 GR」一环。
- DECRQTSR / DECRSTS —— 请求 / 还原终端状态报告
\x1b[Ps$u request \x1bP<Ps>$p<body>\x1b\\ restore保存(`CSI Ps$u` → DCS 回)与还原(`DCS Ps$p…ST`)整套 DEC 终端状态 —— `dcs-decrsps` 只覆盖陈现状态时的终端全态补遗。