我在 vim 中稍微调整了我的状态栏,并开始喜欢它。我使用 autosession.vim,所以当我重新打开时,我打开了相同的文件,但状态行会丢失所有颜色设置。如果我擦除缓冲区并重新打开,颜色又回来了(或者,如果我来源 ~/.vimrc)。我做错了什么还是只是缓冲区的性质,在重新打开会话后状态行会丢失颜色设置?图片如下:
值得一提的是,我在 ArchLinux 上使用了 gvim。
我在 vim 中稍微调整了我的状态栏,并开始喜欢它。我使用 autosession.vim,所以当我重新打开时,我打开了相同的文件,但状态行会丢失所有颜色设置。如果我擦除缓冲区并重新打开,颜色又回来了(或者,如果我来源 ~/.vimrc)。我做错了什么还是只是缓冲区的性质,在重新打开会话后状态行会丢失颜色设置?图片如下:
值得一提的是,我在 ArchLinux 上使用了 gvim。
:syntax on
当会话恢复时,您的自定义突出显示可能会因为命令而丢失。除了像这样定义您的自定义突出显示:
:hi User1 guibg=Blue
添加一个恢复它们的自动命令:
:autocmd ColorScheme * hi User1 guibg=Blue
为了解决这个问题,在你的 .vimrc 中为每个用户颜色添加以下内容:
autocmd SessionLoadPost * hi User1 guifg=#112005 guibg=#009099
SessionLoadPost 在加载会话文件并重新激活您的自定义颜色后触发。
您可以通过以下方式调试覆盖状态行设置的内容
:verbose set statusline?
这将告诉您该值是上次设置的
statusline=.....
Last set from C:\Program Files\Vim\_vimrc
.vimrc
在会话完成加载后获取源代码,这样您就可以恢复所有的设置:打开你的shell配置文件(.bashrc
或.zshrc
等)并编写这个函数:
vims() {
vim -S "$1" -c 'source ~/.vimrc'
}
保存并获取 shell 配置文件(或重新启动 shell)后,您将始终能够使用命令打开 vim 会话...
vims mysession.vim
……完成了!:)