终端
WezTerm —— ANSI 转义码支持情况
WezTerm 是一款由 Wez Furlong 自 2018 年起以 Rust 开发的跨平台、GPU 加速终端模拟器兼复用器。与 alacritty 不同,WezTerm 在二进制内置完整的 TUI 功能:标签页、分屏、工作区、SSH 复用,乃至串口模式 —— 全部通过 Lua 配置文件(`~/.wezterm.lua`)驱动,该文件返回一个配置表并在保存时自动热加载。
ANSI 转义码兼容性方面,WezTerm 是当今功能最完整的终端之一:完整 xterm-ctlseqs SGR、完整 OSC 8 超链接、完整 SGR 4:1–4:5 扩展下划线,以及同时支持三种图像协议(DEC Sixel、kitty 图形协议、iTerm2 OSC 1337 内联图像)—— 任何采用上述协议的终端程序都能直接运行。
最近更新
特性支持情况
该终端在站点统一矩阵跟踪的 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 等)。
- DCS Sixel — 内联栅格图像(ESC P q … ESC \)
\x1bPq <sixel data> \x1b\\通过 Sixel 设备控制载荷在终端流中嵌入像素图像。
- OSC 52 — 系统剪贴板读写
\x1b]52;c;BASE64\x07 (set clipboard 'c' to BASE64 decoded bytes)通过终端设置(或查询)宿主系统剪贴板 —— 可跨 SSH 工作,无需 X11 转发。
- DECSET ?2026 — 同步更新模式
\x1b[?2026h (begin frame) \x1b[?2026l (end frame)在帧结束信号到来前缓冲屏幕更新 —— 全屏重绘时消除闪烁。
细节与版本说明
在生产中使用某序列前应知晓的、该终端特有的注意事项。
- Lua 配置返回 table —— 无 GUI 设置面板
- WezTerm 的配置是位于 `~/.wezterm.lua`(或 `$XDG_CONFIG_HOME/wezterm/wezterm.lua`)的 Lua 模块,需返回一个 config 表。保存后自动热加载(无需重启)。由于是真正的 Lua,你可以基于主机名、操作系统或环境变量分支配置 —— `if os.getenv('FOO') then config.colors = ... end`。WezTerm 没有设置对话框;如有 GUI 需求,可通过 `wezterm.gui.gui_window()` API 自行用 Lua 编写。
- 同时支持三种图像协议
- WezTerm 同时渲染 DEC Sixel(DCS q ... ST)、kitty 图形协议(APC G ... ST)以及 iTerm2 OSC 1337 内联图像。任何使用上述三种协议之一的程序(chafa、kitten icat、imgcat、fzf 预览插件)都可直接运行,无需翻译层。DA1 应答中声明 sixel(`4`);kitty / iTerm2 协议则通过 kitty 图形查询(`APC Gi=1;a=q\x1b\\`)或 `$TERM_PROGRAM=WezTerm` 进行检测。
- 内置 SSH 复用器保留 OSC 8 与真彩色
- `wezterm ssh user@host` 与 `wezterm connect <name>` 使用 WezTerm 自有 mux 协议(而非传统 ssh)—— 击键与转义序列双向直通,避免了普通 ssh 在远端强制 `$TERM=xterm-256color` 带来的降级。OSC 8 超链接、kitty 图形与 24 位色都能完整保留。可在 `wezterm.lua` 的 `ssh_domains` / `unix_domains` 中配置远端。
- 同步输出(?2026)自 20220624 起支持
- DECSET ?2026h / ?2026l 原子帧模式在 WezTerm 20220624-141144-bd1b7c5d 中落地。使用该协议的程序(tmux 3.4+、开启 `vim.opt.termsync = true` 的 neovim、ratatui / textual)能在全屏重绘时避免可见撕裂。无需配置 —— 默认开启。可通过 DECRQM 查询 `CSI ? 2026 $ p` 检测当前模式。