vim - 状态行中的颜色反转。为什么?

标签 vim

我在 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 具有相同的效果

最佳答案

要检查 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位于StatusLineStatusLineNC组中。

要摆脱反向“功能”,您必须覆盖 guicterm 属性。

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

相关文章:

vim - 如何在 VIM 中画线?

vim - 如何重新映射Vim键(PageUp和PageDown)

vim - 终端可以检测到<Shift-Enter>或<Control-Enter>吗?

vim-surround 对我不起作用。 s 键删除而不是环绕

vim - 确定哪个 vim 插件导致了行为

vim - 如何在 Vim 的 taglist 窗口中禁用行号?

vim - 如何在不离开编辑模式的情况下在vim中取消缩进?

vim - 无法切换 NERDTree

vim - 想要使用 'o'进入netrw中的一个文件

用于在单行和多行之间切换 Python 函数/方法参数的 Vim 插件