如何为 ZSH 定义十六进制 RBG 三元组?

How do I define hexadecimal RBG triplets for ZSH?

根据 ZSH 手册,对于 ZSH V5.1+ 颜色应该能够定义为 # 后跟 RGB 颜色代码作为十六进制三元组,例如。 #ff00ff。但是,我没有找到提供具体示例的文档来演示这是如何实现的,而且无论我如何尝试定义颜色变量,它似乎永远不会产生我想要的颜色(或任何颜色)。我已经尝试了以下所有格式,当我尝试在提示定义中的 %F%K 中使用它们时 none 到目前为止已经有效(例如 PS1="%F{$var} >> %f"

var=#ff00ff
var="#ff00ff"
var='#ff00ff'
var=$"#ff00ff"
var=$'#ff00ff'

我是 kitty 终端模拟器中的 运行 shell,它默认启用真彩色支持。 zsh 中的所有 255 个颜色编号(例如 var=231)工作得很好,颜色名称(例如 yellow)也是如此。 我目前是 运行 ZSH V5.5.1。 我在 zsh 手册页 [] 上查找了信息,到目前为止,仅提供了有关它的信息。

我正在寻找一个示例,说明如何毫不含糊地定义十六进制代码颜色(并将它们分配给变量)。

经过更多的实验,我确定问题部分出在文档上,部分出在版本上。本质上,要在 zsh 中声明十六进制三元组,您可以使用 var='#f0f0f0' 格式。为了让它工作,你需要有 ZSH V5.7+,尽管文档可能会说它在 ZSH V5.1+

中工作

我希望这个回答对遇到这个困难的其他人有所帮助。