如何在.vimrc中更改Vim状态栏的颜色?

3

从这个问题中:如何更改vim状态栏颜色?我学会了如何改变状态栏的颜色,像这样:

hi StatusLine ctermbg=3 ctermfg=4

这很好,但我如何在每个窗口上始终执行这操作,而不是必须为打开的每个新窗口应用命令。我希望在.vimrc中完成此操作,但我无法找出如何实现。
我在终端上运行vim,而不是gui;我使用desert作为颜色方案。
答案: 在Ingo和Kent提供的答案使我确信自己做对了之后,它还是没有奏效。然后,我发现我的vimrc中有一行:

set background = dark

我不确定为什么会有那个,但当我注释掉它时,我得到了想要的状态行颜色。

并不是答案!: 嗯,好吧。我刚刚发现,在编辑vimrc时,对.vimrc进行那些更改确实给了我正确的颜色,但当我编辑python文件时,状态颜色消失了。我猜这与filetypes=on有关?

无论哪种方式,当我有更多时间去思考它时,我都需要再次提出这个问题,但是似乎“set background = dark”是一个问题,但并不是整个解决方案。
至于值得注意的是,我的vimrc看起来像这样:
2个回答

4
首先,在你的~/.vimrc文件中,需要在任何:colorscheme命令之后放置:hi命令,因为颜色方案可能提供了其自己的定义。对于:set background=...:syntax on也是类似的处理。
如果状态行颜色仍然消失,或许甚至在切换/打开新窗口时都会消失,那么可能有一个:autocmd命令造成了这种情况。请检查已安装的插件。

谢谢,你的评论让我找到了正确的答案。我编辑了问题并加入了我的错误操作。 - glaucon
自那时以来,我发现这个问题比我想象的要微妙一些,请参见问题的第二次编辑。 - glaucon
就是那个 autocmd BufRead,BufNewFile *.py syntax on,太无聊了。全局执行 :syntax on,然后定义你的 :highlightings。 - Ingo Karkat

3
我认为StatusLine(S大写)没问题。问题可能是这样的:
你把hi StatusLin...放在了colorscheme desert之前,所以颜色方案覆盖了状态栏高亮。
你应该在.vimrc文件中把它放在colorscheme desert之后。

谢谢,你(和Ingos)的评论让我找到了正确的答案。我已经编辑了问题,包括我做错的地方。 - glaucon
如上所述 - 我发现这比我想象的要微妙一些,请参见问题的第二次编辑。 - glaucon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接