【问题标题】:How to change Operator highlight color in Vim?如何在 Vim 中更改运算符突出显示颜色?
【发布时间】:2019-01-14 06:43:19
【问题描述】:

我刚刚在 macOS 上切换到 iTerm2,发现它的一些选项也适用于 Vim。字体就是这种情况,我可以从 iTerm 选项中选择我喜欢的 Vim 字体。

似乎 iTerm 颜色选项也适用于 Vim highligh。但在这种情况下,突出情况并不适合我的口味。所以我尝试改变:

:hi Comment ctermfg=gray

更改 cmets 的字体颜色。

我想换=,::,+,-颜色,我觉得这些是运算符,所以我尝试了:

:hi Operator ctermfg=blue

但似乎没有任何变化。我该怎么做?

如果重要的话,我正在使用 .cpp/.h 文件。

【问题讨论】:

    标签: vim macvim vim-plugin iterm2 vim-syntax-highlighting


    【解决方案1】:

    =+-等在中没有定义为Operator C++ 继承的默认 C 语法。通常 Operator 表示 sizeoftypeof 等关键字 开。

    既然你描述你的终端设置“泄露”给 Vim, 您的配色方案很可能没有定义 ctermfgbg。对于自定义匹配的Operator 组或Normal(最有可能)。你可以测试一下 通过将Normal 设置为某种颜色,例如在您的 示例:

    :hi Normal ctermfg=blue
    

    如果+ 等全部更改,请确保它们实际上不是 匹配为Operator。要修复它,如果您同意设置 你的 Normal 组颜色,那就是它的全部 - Normal 是默认文本的组,不匹配的语法 元素。当您的配色方案未设置时,它将使用 终端颜色。

    但是,如果您希望将运算符放在不同的位置,并且 独家颜色,您需要手动匹配它们 定义一个新的语法项 (:h syn-define)。

    【讨论】:

    • 是的,hi Normal ctermfg=blue 改变了这一切。但事实上,正如您最后指出的那样,我希望运算符具有不同的专有颜色。我想同步匹配是要走的路。我可以请教一下如何编写正则表达式吗?
    • 我使用这个正则表达式来匹配特殊字符:syntax match mySpecialSymbols "+\|-\|\*\|;\|?\|:\|,\|<\|>\|&\||\|!\|\~\|%\|=\|)\|(\|{\|}\|\.\|\[\|\]"。序列\| 是“或”,只需根据需要添加或删除字符即可。
    猜你喜欢
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 2010-12-12
    • 2012-12-17
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多