根据我在Vim的任务,我有几个选项卡打开。
如何保存不同的会话以供以后使用?
根据我在Vim的任务,我有几个选项卡打开。
如何保存不同的会话以供以后使用?
当前回答
这个任务有一个非常有用的插件vim-startify,它可以处理许多其他的事情,比如最近打开的文件等,它也有一个非常简单的界面。
我使用它几天了,直到现在它工作得很好。希望对你有所帮助。
其他回答
你想要的是
:mksession ~/mysession.vim
然后你可以源vim文件,你会有你的旧会话回来:
:source ~/mysession.vim
或者使用-S选项打开vim:
$ vim -S ~/mysession.vim
由于@mathielo 下面是来自@mathielo的例子,我在.vimrc中添加了下面的行来保存活动会话(如果有的话):
au VimLeave * if this_session != "" | exe "mksession! ".this_session
如果你想放更多的行,你需要使用endif:
au VimLeave * if v:this_session != ""
au VimLeave * exe "mksession! ".this_session
au VimLeave * endif
您只需要在vim with中保存一个新会话
:mks [Session filename]
开始之后
$ vim -S [Session filename]
Vim将启动会话,您不必担心每次关闭Vim时都要保存会话。
如果没有活动会话,vimrc将不会做任何事情。像以前一样。
这就是我要找的!再次感谢@mathielo!
您可能希望在vimrc中设置这些会话选项。特别是当您在保存会话之后更改了vimrc时,选项非常烦人。
set ssop-=options " do not store global and local values in a session
set ssop-=folds " do not store folds
下面是唯一一个对我有用的对话。我从这里开始,你也可以从这里得到一个更完整/复杂的版本。
set viewoptions+=cursor,folds,slash,unix
set viewoptions-=options
augroup vimrc
autocmd BufWritePost *
\ if expand('%') != '' && &buftype !~ 'nofile'
\| mkview
\| endif
autocmd BufRead *
\ if expand('%') != '' && &buftype !~ 'nofile'
\| silent loadview
\| endif
augroup END
注意:mksession不会将所做的更改保存到任何文件中。我犯了这个错误,在保存会话后关闭vim,假设我将从那里开始。但是当我再次打开会话时,我对文件所做的更改已经消失了。