2

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

重新开放后

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

4

4 回答 4

2

:syntax on当会话恢复时,您的自定义突出显示可能会因为命令而丢失。除了像这样定义您的自定义突出显示:

:hi User1 guibg=Blue

添加一个恢复它们的自动命令:

:autocmd ColorScheme * hi User1 guibg=Blue
于 2012-10-10T08:54:07.653 回答
1

为了解决这个问题,在你的 .vimrc 中为每个用户颜色添加以下内容:

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

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

于 2012-11-05T05:10:19.963 回答
0

您可以通过以下方式调试覆盖状态行设置的内容

:verbose set statusline?

这将告诉您该值是上次设置的

  statusline=.....
    Last set from C:\Program Files\Vim\_vimrc
于 2012-10-09T10:29:33.900 回答
0

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

创建一个 shell 函数来打开一个 vim 会话并.vimrc在会话完成加载后获取源代码,这样您就可以恢复所有的设置:

打开你的shell配置文件(.bashrc.zshrc等)并编写这个函数:

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

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

vims mysession.vim

……完成了!:)

于 2018-08-05T23:53:07.573 回答