vim:在插入模式下更改状态行颜色

时间:2012-06-21 21:38:41

标签: vim

当我进入插入模式时,我发现这个片段会改变状态行颜色:

" first, enable status line always
set laststatus=2

" now set it up to change the status line based on mode
if version >= 700
  au InsertEnter * hi StatusLine term=reverse ctermbg=5 gui=undercurl guisp=Magenta
  au InsertLeave * hi StatusLine term=reverse ctermfg=0 ctermbg=2 gui=bold,reverse
endif

现在,当我进入插入模式时,状态行变为紫色,但我想将其更改为红色。我用红色改变了Magenta,但是它不起作用..

3 个答案:

答案 0 :(得分:4)

如果您使用:help,则可以了解每个属性的含义。

guisp用于突出显示的“特殊”颜色。在这种情况下,它是undercurl效果的颜色。听起来你想要改变实际的高光颜色,所以试试这个:

au InsertEnter * hi StatusLine term=reverse ctermbg=5 gui=undercurl guisp=Magenta guibg=Red

事实上,如果您只使用GUI Vim,则不需要任何终端选项:

au InsertEnter * hi StatusLine guibg=Red
au InsertLeave * hi StatusLine guibg=#ccdc90

对于InsertLeave,我只使用我的普通StatusLine颜色作为示例。您应该可以在colorscheme文件中找到它。

顺便说一下,guibg实际上会影响文字颜色,而guifg会影响线条颜色......

答案 1 :(得分:4)

我没有看到你是否正在使用gui版本的Vim,或者只是在终端中使用Vim。

如果您在终端中,则需要将"ctermbg=5"更改为"ctermbg=red"。在这种情况下,"5"会转换为"DarkMagenta"。 Vim将接受这些属性的数字或颜色名称。

可以在Vim语法文档的Highlight Command下的第2节和第3节中找到更多信息。

答案 2 :(得分:1)

出色的解决方案:Powerline plugin

Normal mode Insert mode