我在Windows上使用gvim 7.4,全新安装,没有插件。谁能解释,为什么这样:

highlight statusline guifg=red guibg=green

会在红色背景上显示绿色文本。

但是这个:
highlight statusline gui=NONE guifg=red guibg=green

会在绿色背景上显示红色文字?

(实际目标是将状态栏中的文本从粗体更改为普通文本。对于此任务,我添加了gui=NONE,然后查看此奇怪的行为)。

编辑

(作为我对肯特评论的答复)

这是我完整的_vimrc。代码上只有两行:
set laststatus=2
highlight statusline gui=NONE guifg=red guibg=green

还尝试了:
  • hihighlight具有相同的效果
  • StatusLinestatusline具有相同的效果
  • 最佳答案

    这是因为默认的StatusLine是:

    :hi StatusLine
      StatusLine     xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse
    

    注意reversecterm中的gui关键字吗?这告诉它使用反向视频。

    这也是为什么使用gui=NONE(或gui=bold)时颜色会达到预期的原因。


    hi只是highlight的缩写。

    关于vim - 状态行中的颜色反转。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36429437/

    10-11 05:09