我在 vimrc 文件中配置了以下语句:
autocmd VimLeave * mksession! ./vimsession
有没有办法让 vim 声明为 vim -S vimsession?那么当我输入vi时,它在后台执行为vi -S vimsession?
我在 vimrc 文件中配置了以下语句:
autocmd VimLeave * mksession! ./vimsession
有没有办法让 vim 声明为 vim -S vimsession?那么当我输入vi时,它在后台执行为vi -S vimsession?
要自动恢复持久会话,请将其放入您的~/.vimrc
:
if filereadable('./vimsession')
source ./vimsession
endif
最好将其延迟到所有插件都已加载:
if filereadable('./vimsession')
autocmd VimEnter * source ./vimsession
endif
我不确定我是否理解你的问题。听起来您想区分 Vim 是在有会话还是没有会话的情况下启动的。
如果您加载/保存会话,v:this_session
将保存会话文件的路径。
:help v:this_session
因此,如果我正确理解了您的问题,则您需要以下内容:
autocmd VimLeave *
\ if exists('v:this_session') && filewritable(v:this_session) |
\ execute 'mksession!' fnameescape(v:this_session) |
\ endif
在关闭 Vim 时,它会检查是否有正在运行的会话并在退出前更新它。