终端主题定义 16 个 ANSI 位置。程序按编号请求颜色,而不是按 hex,所以“红色”具体是什么由主题决定。
两排颜色
| 位置 | 名称 | 常见用途 |
|---|---|---|
| 0 | black | 背景、弱文本 |
| 1 | red | 错误、删除 |
| 2 | green | 成功、新增 |
| 3 | yellow | 警告、修改的文件 |
| 4 | blue | 目录、链接 |
| 5 | magenta | 关键字、特殊值 |
| 6 | cyan | 信息、提示符 |
| 7 | white | 正文 |
| 8–15 | 亮色变体 | 粗体、强调、备用界面 |
前八个是普通行,后八个是亮色行。很多工具用亮色显示粗体,所以两排都要保证可读。
亮色不一定更亮
有些调色板的 bright red 是另一种色相,而不是更浅的红色。不要假设数学关系,16 个位置都要显式定义。
顺序为什么重要
Herdr App 主题文件、Ghostty、Alacritty、Kitty、iTerm2 和 Windows Terminal 都按同样顺序映射 16 个位置。顺序错了,git diff 的删除行会变绿。始终按 black, red, green, yellow, blue, magenta, cyan, white 再跟亮色变体的顺序排列。
16 色之外
背景、前景、光标和选区是独立字段。所以一个完整主题有 22 个值:16 个 ANSI + 背景 + 前景 + 光标 + 选区,另有可选的光标文字和选区文字。