urxvt 设置中 color[0-15] 的含义是什么?

what's the meaning of color[0-15] in urxvt settings?

首先,我搜索了 google.com 上的主题,但没有太大帮助。

我已经使用一些颜色主题配置了我的 urxvt,但这真的伤了我的眼睛。因此,我决定使用一些 Vim 颜色调色板创建自己的调色板。我真的需要知道 urxvt .Xdefaults 或 .Xresources 设置中 color0 - color15 的含义。这些颜色的目的是什么?有人知道吗?

这些颜色的目的是作为颜色。

终端仿真器通常让您定义 16 种 "ASCII" 颜色:

Normal      Bright
--------    -------
0 Black      8 Black
1 Red        9 Red
2 Yellow    10 Yellow
3 Green     11 Green
4 Blue      12 Blue
5 Magenta   13 Magenta
6 Cyan      14 Cyan
7 White     15 White

"Normal" 颜色通常较深,"Bright" 颜色通常较浅。

如前所述,没有 "ASCII" 种颜色,无论有多少种。 "ANSI" 颜色也是有问题的,因为 ANSI(指已失效的 x3.64 标准)从未指定 16 种颜色。

urxvt的color0-color15资源名称继承自rxvt对X资源设置的模拟。 (X 资源通常由 X Toolkit 管理,两者都不使用)。 urxvt 的手册页认为这些众所周知,无法提及任何细节。 rxvt 将使用 "XTerm" 和 "Rxvt" 类名搜索资源设置,并在这样做时合并了 xterm 中的几个资源名称。 urxvt(最初是将 rxvt 翻译成 C++)在 2004 年放弃了该功能(搜索 "XTerm"),但保留了大部分其他 rxvt 资源名称。

这些名称是在 xterm 中定义的(参见 manual),对于这两个范围:

  • color0-color7 -- 这些指定了 ISO-6429 扩展的颜色。默认值分别为黑色、红色 3、绿色 3、黄色 3、可自定义的深蓝色、洋红色 3、青色 3 和灰色 90。选择默认颜色深浅以允许颜色 8-15 用作更亮的版本。
  • color8-color15 -- 如果还启用了 bold 属性,这些指定 ISO-6429 扩展的颜色。默认资源值分别为gray30、red、green、yellow、可自定义的淡蓝色、品红色、青色和白色。

第二个范围是不同类型的 "extension": ISO-6429 没有定义可能对应于那些的转义序列。相反,xterm 将两个功能组合到一个调色板中:

  • SGR 90-107(aixterm 的 16 色扩展控制序列,并入 1997 中的 xterm)。
  • "PC-colors"(另一种将粗体视为明亮颜色以解决字体问题的方法——也来自 1997)。