终端
kitty —— ANSI 转义码支持情况
kitty 是由 Kovid Goyal 自 2017 年起开发的 GPU 加速、OpenGL 渲染终端模拟器。它同时是两项被其他终端不断采纳的扩展协议的源头:kitty 图形协议(通过 `_G` APC 序列内联渲染 PNG/RGB 图像)以及 kitty 键盘协议(CSI u 键编码、完整 Unicode 修饰键、焦点键上报)。
ANSI 转义码方面,kitty 实现了完整的 xterm-ctlseqs 集,并叠加自家扩展。希望跨终端渲染图像的程序需通过 DA1 或终端名识别 kitty 后分发到 `_G` 协议;目前仅 iTerm2、Wezterm、Ghostty 也实现了该协议。
最近更新
特性支持情况
该终端在站点统一矩阵跟踪的 15 个特性上的表现。点击任意特性名可查看其在全部终端上的完整支持情况。
- 8 种基础色(30–37 / 40–47)SGR 30–37 前景,40–47 背景。支持
- 高亮(aixterm)色(90–97 / 100–107)aixterm SGR 扩展。支持
- 256 色调色板(38;5;n / 48;5;n)xterm 256 色扩展。支持
- 24 位真彩色(38;2;r;g;b)1670 万直接 RGB。设置 $COLORTERM=truecolor。支持
- 斜体(SGR 3)斜体文本属性。支持
- 扩展下划线(4:1–4:5)波浪/点/虚下划线样式。支持
- 删除线(SGR 9)文本中央的水平线。支持
- OSC 8 超链接内联可点击 URI。支持
- 备用屏幕(?1049h)全屏应用缓冲区。支持
- 鼠标跟踪(SGR ?1006)鼠标点击/拖拽事件。支持
- 括号粘贴(?2004)粘贴文本被 ESC[200~/ESC[201~ 包裹。支持
- 焦点事件(?1004)获得焦点时 ESC[I,失去时 ESC[O。支持
- Sixel 图形DEC sixel 内联位图。不支持
- Kitty 图形协议PNG/RGB 内联图像和动画。支持
- 同步输出(?2026)原子化帧更新,避免撕裂。支持
在此终端可用的序列
该终端能完整处理的转义序列对应的权威参考页。每条均链接到完整页面,含字节形式、规范出处与多语言示例。
- SGR 38;2;R;G;B — 24 位真彩色前景
\x1b[38;2;R;G;Bm直接指定 16,777,216 种 RGB 前景色之一。
- DECSET 1049 — 备用屏幕缓冲
\x1b[?1049h (enter) \x1b[?1049l (leave)切换到独立屏幕缓冲区(vim/less 启动时使用)。
- OSC 8 — 内联超链接
\x1b]8;;URI\x07TEXT\x1b]8;;\x07在终端输出中渲染可点击超链接(gnome-terminal 3.26+、iTerm2、Windows Terminal、kitty 等)。
- DECSET ?2004 — 括号粘贴模式
\x1b[?2004h (enable) \x1b[?2004l (disable)将粘贴文本用独立的转义标记包裹,让应用区分粘贴与键入。
- SGR 1 — 加粗 / 高亮
\x1b[1m将后续文本渲染为加粗(在某些终端上为高亮色)。
细节与版本说明
在生产中使用某序列前应知晓的、该终端特有的注意事项。
- kitty 键盘协议 —— `CSI > 1 u` 启用、`CSI < u` 关闭
- 通过 `CSI > 1 u` 启用后,应用可获得完整保真度的键事件:每一次按下与释放、按键所打印字符的 Unicode 码点(而非按布局重映射后的版本)、左右 Shift / Ctrl / Alt / Super 修饰键标志、数字键盘与主键盘的区分。退出前请用 `CSI < u` 恢复标准 xterm 风格按键,否则下一个 shell 看到的方向键就坏了。Neovim 0.10+ 与现代 TUI 框架(textual、ratatui)会自动协商该协议。
- 故意不支持 Sixel(也无计划)
- Kovid Goyal 在 kitty FAQ 第 4 条中表态:Sixel 是 1980 年代为 DEC 打印机设计的协议,相比 PNG 浪费 6 倍内存且不保留透明通道。kitty 选择推出自家图形协议作为替代。跨终端图像库(term-image、viu、chafa)通过 DA1 识别后,在 kitty 上走 kitty 图形协议、在仅支持 Sixel 的终端上走 Sixel —— 两者之间没有回退路径。
- 默认 $TERM 为 xterm-kitty(自带 terminfo)
- kitty 会安装一份 `xterm-kitty` terminfo 条目并通过 $TERM 设置。SSH 到不识别 `xterm-kitty` 的远端时 tput 会失败 —— kitty 提供 `kitten ssh`(一个包装器)会先把 terminfo 复制到远端。也可以用 `infocmp -x xterm-kitty | ssh 远端 'tic -x -'` 单次完成。
- 扩展下划线 —— 完整 SGR 4:1–4:5 语法
- kitty 实现了全部 5 种 SGR 4:n 下划线样式(直线、双线、波浪、点、虚)以及 SGR 58:2;r;g;b 下划线着色。terminfo 条目声明 Smulx 与 Setulc,因此基于 tput 的特性检测可直接生效。其他终端(alacritty、xterm)仅支持其中一部分。