重新打开会话后,Vim statusline会丢失颜色

时间:2012-10-09 10:22:45

标签: vim statusline

我在vim中调整了我的状态线,并开始喜欢它。我使用autosession.vim所以当我重新打开时,我打开了相同的文件,但状态行丢失了所有颜色设置。如果我擦除缓冲区并重新打开,颜色会回来(或者,如果我来源〜/ .vimrc)。 我做错了什么或只是缓冲区的性质,重新开启会话后状态线会丢失颜色设置?图片如下: Colored

After reopening

值得一提的是我在ArchLinux上使用gvim。

4 个答案:

答案 0 :(得分:2)

当会话恢复时,由于:syntax on命令,您的自定义突出显示可能会丢失。除了定义您的自定义突出显示之外:

:hi User1 guibg=Blue

添加一个可以恢复它们的autocmd:

:autocmd ColorScheme * hi User1 guibg=Blue

答案 1 :(得分:1)

为了解决此问题,请为.vimrc添加以下用户颜色:

autocmd SessionLoadPost * hi User1 guifg=#112005 guibg=#009099

SessionLoadPost在加载会话文件后触发,并重新激活您的自定义颜色。

答案 2 :(得分:0)

您可以通过执行

调试覆盖状态行设置的内容
:verbose set statusline?

这将告诉您最后设置的值

  statusline=.....
    Last set from C:\Program Files\Vim\_vimrc

答案 3 :(得分:0)

-最简单的稳定解决方案-

创建一个shell函数来打开一个vim会话,并在会话加载完成后获取.vimrc的源代码,这样您就可以将所有的见解回去了。

打开您的Shell配置文件(.bashrc.zshrc等)并编写此函数:

vims() {
  vim -S "$1" -c 'source ~/.vimrc'
}

保存并获取Shell配置文件(或重新启动Shell)后,您将始终能够使用以下命令打开vim会话...

vims mysession.vim

...完成了! :)