我在 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
还尝试过:
hi
与highlight
具有相同的效果StatusLine
与statusline
具有相同的效果
最佳答案
要检查 hi-group 是如何定义的,请在 vim 中使用:hi GroupName
,这就是为什么我一直要求 OP 和 Carpetsmoker 提供他们的 cmd 输出。
编译并安装 vim 后,已经定义了一些默认的 HL-Group。
人们不时询问默认的配色方案。并想要扩展“默认”配色方案。该位置很容易找到,在 Linux 机器上,例如它位于 /usr/share/vim/vim74/colors/default.vim
,不同的发行版可能有不同的路径。
但是,如果我们打开 default.vim
,我们将看到一个相当简单的 vim 文件。没有任何 HL 定义。因为它们默认定义在 vim 源代码中。
关于StatusLine
组,它是在syntax.c
文件中定义的:
https://github.com/vim/vim/blob/8bc189e81aa98ba4aebb03a9dc9527a210fce816/src/syntax.c#L6784
我们可以看到reverse
位于StatusLine
和StatusLineNC
组中。
要摆脱反向“功能”,您必须覆盖 gui
或 cterm
属性。
关于vim - 状态行中的颜色反转。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36429437/