我在配置zsh提示时遇到一些困难。具体来说,我希望字体具有十六进制代码定义的颜色:#87afdf
目前,我已按以下方式设置提示:
PROMPT='%B[%d]
➞ %b'
我试图以下列方式添加颜色:
autoload -U colors && colors
PROMPT='%{$fg[#87afdf]%}%B[%d]
➞ %b%{$reset_color%}'
但这只会给我以下乱码:
$fg[#87afdf][/Users/gregory]
➞ $reset_color
非常感谢任何关于如何进行的想法。
答案 0 :(得分:2)
除非您使用的是非常不寻常的终端,否则您无法使用任何您想要的颜色组合。标准终端仅限于(最多)256-color palette。
zsh附带的colors
函数只是允许通过名称引用旧的16色调色板中的颜色,它将无助于使用该范围之外的颜色。
有一个simple script可用于设置$FG
和$BG
数组,以提供一种方法来使用256色调色板中的颜色,但不需要处理终端处理这些序列所必需的逃逸序列。
答案 1 :(得分:1)
您必须使用256色调色板。您可以使用以下命令在ZSH中查看256种颜色中每种颜色的数值:
for code in {000..255}; do print -P -- "$code: %F{$code}Color%f"; done
bash也一样:
for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Color"; done
答案 2 :(得分:0)
如上所述,您必须使用256色调色板。 查看可用颜色的最简单方法是使用以下命令(因为ZSH使用下面的光谱):
spectrum_ls
它将打印所有可用的颜色
...
要在主题中使用颜色,您必须像$FG[<0-255>]
这样写颜色,例如$FG[172]
大写可能很重要,因为$fg[172]
在我的控制台上不起作用!
您的终端可能仅支持8种颜色,而不是256种。如果为true,则执行spectrum_ls
后将看不到所有颜色。
在这种情况下,您必须将终端配置为支持256色。
https://dev.to/yujinyuz/custom-colors-in-oh-my-zsh-themes-4h13