OSC 8 — 内联超链接
在终端输出中渲染可点击超链接(gnome-terminal 3.26+、iTerm2、Windows Terminal、kitty 等)。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b]8;;URI\x07TEXT\x1b]8;;\x07\\033[
\033]8;;URI\007TEXT\033]8;;\007\\e[
\e]8;;URI\aTEXT\e]8;;\aESC [
ESC ] 8 ; ; URI BEL TEXT ESC ] 8 ; ; BELhex
1b 5d 38 3b 3b ... 07 ... 1b 5d 38 3b 3b 07说明
由 gnome-terminal 在 2017 年制定,现已被广泛采纳。两段式序列:`OSC 8 ; params ; URI BEL` 开始链接区段,`OSC 8 ; ; BEL`(URI 为空)结束。中间 TEXT 可包含任意可打印字符及后续 SGR。可选参数:`id=anchor` 让终端将跨行链接去重。普通 HTTP/HTTPS 链接全平台可用;`file://` 在 iTerm2 / wezterm / kitty / vscode-terminal 可用;`vscode://` 等编辑器 URI 部分支持。
规范出处: Hyperlinks in terminal emulators (gnome-terminal proposal, 2017)
示例
printf '\033]8;;https://example.com\033\\link text\033]8;;\033\\\n'print('\x1b]8;;https://example.com\x07link text\x1b]8;;\x07')fmt.Print("\x1b]8;;https://example.com\x07link text\x1b]8;;\x07\n")console.log('\x1b]8;;https://example.com\x07link text\x1b]8;;\x07')printf("\x1b]8;;https://example.com\x07link text\x1b]8;;\x07\n");终端支持
- xterm
- 部分
- Linux console (fbcon)
- 不支持
- macOS Terminal.app
- 不支持
- iTerm2
- 支持
- Windows Terminal
- 支持
- cmd.exe / ConPTY
- 不支持
- kitty
- 支持
- alacritty
- 不支持
- WezTerm
- 支持
- Ghostty
- 支持
- GNOME Terminal
- 支持
- Konsole
- 支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 部分 | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |