跳到主要内容
ansicode
终端

iTerm2 —— ANSI 转义码支持情况

iTerm2 是 macOS 上事实上的现代终端模拟器,由 George Nachman 自 2006 年起持续开发。它紧跟 xterm-ctlseqs 的每一项更新,同时携带多个专有扩展——通过 OSC 1337 内联显示图像、tmux 集成模式、无需检测 $COLORTERM 的原生真彩色,以及业界最完整的 kitty 扩展下划线实现之一。

iTerm2 还实现了最激进的性能优化:同步输出(DECSET ?2026)、Unicode 15 字符宽度表、Metal 渲染器。从 ANSI 转义码兼容性而言,iTerm2 是 xterm 的严格超集。

最近更新

特性支持情况

该终端在站点统一矩阵跟踪的 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)原子化帧更新,避免撕裂。
    支持

在此终端可用的序列

该终端能完整处理的转义序列对应的权威参考页。每条均链接到完整页面,含字节形式、规范出处与多语言示例。

细节与版本说明

在生产中使用某序列前应知晓的、该终端特有的注意事项。

无需 $COLORTERM 的原生真彩色
iTerm2 始终解析 SGR 38;2;r;g;b,不论 $COLORTERM、$TERM 或 terminfo 条目如何。依赖 `process.env.COLORTERM === "truecolor"` 来启用真彩色的程序仍会降级到 256 色——可在 shell 配置文件中显式设置该变量,或在 iTerm2 设置项中将 Profiles → Terminal → Report Terminal Type 改为 xterm-direct。
OSC 1337 —— 专有图像 / 文件协议
iTerm2 的 `imgcat` 与内联图像功能采用 `OSC 1337 ; File=name=...;inline=1 : <base64 png> BEL`,完全在 xterm-ctlseqs 之外。请通过 iTerm2 在每个新 shell 中设置的 LC_TERMINAL=iTerm.app 环境变量,或 DA1 次响应来识别 iTerm2,再发送 OSC 1337。
同步输出默认开启
DECSET ?2026h 开始一个原子帧,?2026l 提交。iTerm2 自 3.4.18 版本(2022 年)起支持并默认开启。tmux、kitty、Ratatui、Textual、Bubbletea 等现代 TUI 框架会自动发送该序列——在 iTerm2 中无需额外配置。
故意不支持 Kitty 图形协议
iTerm2 出于维护考量未实现 kitty 图形协议(`_G` APC 序列),坚持沿用更早的 OSC 1337。两套协议互不兼容。跨终端的图像库(term-image、viu)会通过 DA1 + 终端名识别后分发到对应协议——两者之间没有可移植的回退方案。

参考资料

其他已有专页的终端