终端
Ghostty —— ANSI 转义码支持情况
Ghostty 是 Mitchell Hashimoto(HashiCorp 创始人)开发的跨平台终端模拟器,使用 Zig 编写,经过三年内部测试于 2024 年 12 月首次公开发布。其设计理念是让终端在每个操作系统上都拥有原生体验 —— macOS 上的 AppKit、Linux 上的 GTK4 —— 同时不牺牲任何现代终端功能。没有 Electron,没有 Web 技术栈,用户层面也没有把 Rust 与 Zig 的语言之争烙在体验里。
Ghostty 开箱即用地实现了相当激进的现代终端协议子集:完整 xterm-ctlseqs SGR、完整 OSC 8 超链接、完整 SGR 4:1–4:5 扩展下划线、kitty 图形协议、kitty 键盘协议(CSI > 1 u)以及 DECSET ?2026 同步输出。Sixel 通过 libsixel 支持。配置文件位于 `~/.config/ghostty/config`,为扁平的类 INI 格式,每行一个键,无嵌套。
最近更新
特性支持情况
该终端在站点统一矩阵跟踪的 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 前景色之一。
- OSC 8 — 内联超链接
\x1b]8;;URI\x07TEXT\x1b]8;;\x07在终端输出中渲染可点击超链接(gnome-terminal 3.26+、iTerm2、Windows Terminal、kitty 等)。
- DECSET 1049 — 备用屏幕缓冲
\x1b[?1049h (enter) \x1b[?1049l (leave)切换到独立屏幕缓冲区(vim/less 启动时使用)。
- DECSET ?2004 — 括号粘贴模式
\x1b[?2004h (enable) \x1b[?2004l (disable)将粘贴文本用独立的转义标记包裹,让应用区分粘贴与键入。
- DECSET ?2026 — 同步更新模式
\x1b[?2026h (begin frame) \x1b[?2026l (end frame)在帧结束信号到来前缓冲屏幕更新 —— 全屏重绘时消除闪烁。
细节与版本说明
在生产中使用某序列前应知晓的、该终端特有的注意事项。
- Linux GTK4 版本通常落后 macOS 1-2 个小版本
- Ghostty 的 macOS 应用先行构建;Linux GTK4 构建(Fedora COPR、AUR、Flathub)随后跟上。ANSI 转义序列层面功能完全对等,但窗口装饰细节(透明度、毛玻璃、标签栏样式)与 shell 集成抛光(提示符重绘时的光标定位)会先在 macOS 上落地。CI 与开发容器场景下 Linux 构建已足够;若要与文档截图保持一致,请同时核对两端。
- 扁平的类 INI 配置 —— 每行一个键,无嵌套
- `~/.config/ghostty/config` 是一组 `key = value` 行(如 `font-family = JetBrains Mono`、`theme = catppuccin-mocha`)。没有 TOML 表、没有 Lua、没有 JSON。列表通过重复键表达 —— `keybind = ctrl+a>z=close_window` 接 `keybind = ctrl+a>x=new_tab`。`+macos` 前缀键仅在 macOS 生效;`+linux` 前缀键仅在 Linux 生效。运行 `ghostty +show-config --default` 可查看所有已文档化的键及其默认值。
- kitty 键盘与图形协议默认启用
- Ghostty 默认启用 kitty 渐进式键盘增强(CSI > 1 u 启用、CSI < u 关闭)以及 kitty 图形协议(APC G ... ST)。neovim 0.10+、helix、zellij 会通过 DA3 / DA1 与 kitty 图形查询自动识别并升级 —— 因此 Ctrl-Shift-字母 组合、精确修饰键上报、内联图像预览无需配置即可使用。未实现 kitty 协议的程序也不会受影响(Ghostty 会返回正常的 xterm 兼容默认值)。
- 同步输出(?2026)及基于 libsixel 的 Sixel
- DECSET ?2026h / ?2026l 原子帧模式在所有平台均支持,无需配置开关。Sixel 渲染依赖系统的 libsixel:macOS 上通过 `brew install libsixel` 安装(Ghostty 动态链接);Linux 发行版若打包了 libsixel(Debian / Fedora)则随依赖自动安装。若系统缺少 libsixel,Sixel 序列会以乱码形式输出 —— 请通过 DA1(`CSI c` 应答含 `4`)检测,而非假设可用。