根据我在Vim的任务,我有几个选项卡打开。

如何保存不同的会话以供以后使用?


当前回答

您可能希望在vimrc中设置这些会话选项。特别是当您在保存会话之后更改了vimrc时,选项非常烦人。

set ssop-=options    " do not store global and local values in a session
set ssop-=folds      " do not store folds

其他回答

为了管理多个会话(在每个目录/回购的基础上),我最近从vim-session插件切换到vim-workspace。它的会话管理相对简单,工作得很好。

就我个人而言,我只是包装了Tim Pope的Obsession插件,以允许定义一个sessiondir,并避免输入路径:

let g:sessiondir = $HOME . ".vim/sessions"

command! -nargs=1 MkSession call MkSession(<f-args>)
function! MkSession(sessionfile)
  if !isdirectory(g:sessiondir)
    call mkdir(g:sessiondir, "p")
  endif
  exe 'Obsession' g:sessiondir . '/' . a:sessionfile
endfunction

command! -nargs=1 LoadSession call LoadSession(<f-args>)
function! LoadSession(sessionfile)

  let a:sessionpath = g:sessiondir . a:sessionfile
  if (filereadable(a:sessionpath))
    exe 'source ' a:sessionpath
  else
    echo "No session loaded."
  endif
endfunction

你想要的是

:mksession ~/mysession.vim

然后你可以源vim文件,你会有你的旧会话回来:

:source ~/mysession.vim

或者使用-S选项打开vim:

$ vim -S ~/mysession.vim

您可能希望在vimrc中设置这些会话选项。特别是当您在保存会话之后更改了vimrc时,选项非常烦人。

set ssop-=options    " do not store global and local values in a session
set ssop-=folds      " do not store folds

这个任务有一个非常有用的插件vim-startify,它可以处理许多其他的事情,比如最近打开的文件等,它也有一个非常简单的界面。

我使用它几天了,直到现在它工作得很好。希望对你有所帮助。