zsh-syntax-highlighting 中的 256 种颜色?

5 zsh zshrc

好的,所以我正在使用这种名为 zsh-syntax-highlighting 的小花哨尖端技术,虽然我对结果总体感到满意,但我不知道如何将样式设置为 8 种基本颜色(黑色、红色、绿色) 、黄色、蓝色、品红色、青色、白色),例如

#works
ZSH_HIGHLIGHT_STYLES[path]='fg=red'
ZSH_HIGHLIGHT_STYLES[path]='fg=1'

#doesn't work
ZSH_HIGHLIGHT_STYLES[path]='fg=31m'
ZSH_HIGHLIGHT_STYLES[path]='fg=\e[31m'
ZSH_HIGHLIGHT_STYLES[path]='fg=%{\e[31m%}'
ZSH_HIGHLIGHT_STYLES[path]='31m'
ZSH_HIGHLIGHT_STYLES[path]='\e[31m'
ZSH_HIGHLIGHT_STYLES[path]='%{\e[31m%}'
ZSH_HIGHLIGHT_STYLES[path]='%{\e[1;38;5;118m%}'
Run Code Online (Sandbox Code Playgroud)

那么,如何为这个 zshzle 插件设置更多花哨的颜色?

小智 5

正如您在对 chepner 的评论中指出的那样,答案 terminator是 的一个分支gnome-terminal,并且它仍然使用 gnome 中的许多功能。事实上,整个terminator VTE 小部件似乎都来自 gnome,而 gnome-terminal 默认情况下仅“支持”8 种基本颜色。你可以用echotc Co命令检查一下。它将为它们返回 8,也为它们返回 8 xterm(尽管xterm如果这是真的,并且只有 8 种颜色),所以基本上到目前为止您尝试过的所有 3 个终端模拟器。

现在,您注意到 teminator(和 gnome-terminal)实际上可以显示更多颜色,但这只是因为它或多或少地处理所有这些特殊颜色代码,而不注意不遵守标准的 TERM 设置,但是,这就是侏儒。无论如何,长话短说,您需要将TERM环境变量设置为类似的值xterm-256color,然后再次检查echotc Co- 您现在应该看到256,并且您ZSH_HIGHLIGHT_STYLES[path]='fg=217'应该也可以工作。

要始终从 256 种颜色开始,您可以将其放入 .zshrc

[[ "$TERM" == "xterm" ]] && export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)

如果您有任何 gnome 快捷方式,terminator请按如下方式更改它们

terminator -e "TERM=xterm-256color pine"
Run Code Online (Sandbox Code Playgroud)