我知道有一些方法可以在 Zsh 中使用 ANSI 颜色名称(例如红色),但是 Zsh 按数字支持 256 种颜色。我很好奇是否有任何方法可以通过名称引用非 ANSI 颜色? (不只是将它们粘贴在变量中)
答案1
前 16 种颜色长期以来一直是标准颜色(并且大部分是标准色调)。 256 色是 xterm 和兼容终端定义的最新扩展。 xterm 文档对颜色 16-255 有这样的说法:
这些指定 256 色扩展的颜色。默认资源值是颜色 16 到 231 形成 6x6x6 颜色立方体,颜色 232 到 255 形成灰度渐变。
可以在终端内更改颜色;看到ctlseqs
文件。例如,print '\e]4;42;taupe\a'
将颜色 42 更改为灰褐色(颜色名称在/etc/X11/rgb.txt
或某些其他依赖于分布的位置中可用)。
如果您满足于假设 16 以上的颜色具有默认值,则可以使用$color
来自 的名称扩展该数组rgb.txt
。您需要进行一些算术运算才能找到 lg(6) 位颜色中最接近的 8 位颜色。