0

我在 vimrc 文件中配置了以下语句:

autocmd VimLeave * mksession! ./vimsession

有没有办法让 vim 声明为 vim -S vimsession?那么当我输入vi时,它在后台执行为vi -S vimsession?

4

2 回答 2

3

要自动恢复持久会话,请将其放入您的~/.vimrc

if filereadable('./vimsession')
    source ./vimsession
endif

最好将其延迟到所有插件都已加载:

if filereadable('./vimsession')
    autocmd VimEnter * source ./vimsession
endif
于 2013-08-13T08:21:01.890 回答
0

我不确定我是否理解你的问题。听起来您想区分 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 时,它会检查是否有正在运行的会话并在退出前更新它。

于 2013-08-13T08:07:39.640 回答