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

时间:2014-08-12 22:04:23

标签: 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%}'

那么,如何为这个zshzle插件设置更多精美的颜色呢?

3 个答案:

答案 0 :(得分:4)

正如您在chepner answer terminator的评论中指出的那样是gnome-terminal的一个分支,它仍然使用gnome中的许多函数。事实上似乎整个terminator VTE widget来自gnome和gnome-terminal默认情况下"支持"只有8种基本颜色。您可以使用echotc Co命令进行检查。对于它们和xterm,它将返回8(尽管在xterm情况下这是真的并且只有8种颜色),所以基本上你到目前为止尝试了所有3个终端模拟器。

现在,您注意到teminator(和gnome-terminal)实际上可以显示更多颜色,但这只是因为它或多或少地处理所有这些特殊颜色代码而不关注TERM设置什么不遵守标准但是,这是侏儒。无论如何要简短地说明你需要将TERM环境变量设置为类似xterm-256color的内容并再次使用echotc Co进行检查 - 您现在应该看到256和{{1}应该也可以。

总是以256种颜色开始,你可以放入.zshrc

ZSH_HIGHLIGHT_STYLES[path]='fg=217'

如果您有[[ "$TERM" == "xterm" ]] && export TERM=xterm-256color 的任何gnome快捷方式,请按以下步骤更改

terminator

答案 1 :(得分:1)

http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting表示fg的值是0到255之间的单个整数:

ZSH_HIGHLIGHT_STYLES[path]='fg=167'  # Whatever color 167 is in the 256-color palette.

答案 2 :(得分:1)

  1. 我注意到您正在使用[路径],可能是自带颜色设置的自定义路径会干扰您的突出显示设置。尝试使用其他项目进行测试,例如[command]:

    ZSH_HIGHLIGHT_STYLES[command]='fg=222'
    

    我尝试了以上这一行,它对我有用。我尝试使用相同的路径值,因为我知道我的自定义提示有自己的颜色,并且我的提示自定义颜色在突出显示中胜出。

  2. 我使用名为Oh-My-ZSH的ZSH助手,因此以下内容可能略有不同或不适用于您:

    确保在加载高亮插件后更改颜色定义。在我的设置中,它实际上会产生错误,但由于我只在我的系统(OSX10,9,ZSH 5.0.7,Oh-My-ZSH,iTerm v2)上测试过,您的体验可能会有所不同。

    不起作用:

    ZSH_HIGHLIGHT_STYLES[command]='fg=222'
    ...
    plugins=(git osx jim colorize zsh-syntax-highlighting)
    

    工作:

    plugins=(git osx jim colorize zsh-syntax-highlighting)
    ...
    ZSH_HIGHLIGHT_STYLES[command]='fg=222'