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

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


当前回答

你可以把会话存储在任何你想要的地方。

Ex:

:mksession! D:/session.ses

这将会话存储在D驱动器中。

这可以通过输入打开

:so D:/session.ses

在任何vim文件中。

其他回答

有一个叫vim-session的插件。它非常强大。安装方法:

cd ~/.vim/bundle
git clone https://github.com/xolox/vim-session.git

我在我的.vimrc文件中映射了它的功能,就像这样:

nnoremap <leader>so :OpenSession 
nnoremap <leader>ss :SaveSession 
nnoremap <leader>sd :DeleteSession<CR>
nnoremap <leader>sc :CloseSession<CR>

现在在正常模式下输入<leader>ss,你会看到这样的命令

:SaveSession 

现在添加会话的名称

 :SaveSession namesession

就这些。

当你关闭Vim并重新打开它时,就这么做

 :OpenSession

你会看到你的会议开始了。

在你的.vimrc文件中还有很多其他的配置需要添加,参见文档中的例子:

let g:session_directory = "~/.vim/tmp/session"  // the directory must be created before the sessions will be saved there
let g:session_autoload = "no"                   // automatic reload sessions
let g:session_autosave = "no"                   // autosave
let g:session_command_aliases = 1

YouTube上有一个很好的教程。

如果你使用NERDTree作为文件资源管理器/dash,我推荐xolox/vim-session插件,而不是内置的:mksession命令。由于某种原因,:mksession无法恢复NERDTree缓冲区。你的观点可能不同,但我想分享一下我的经验。

如果你计划只有一个阶段的项目,那就这样做

:mks

这将创建一个Session。Vim文件在当前目录,然后打开会话(从同一目录):

vim -S

如果您更改会话并想要保存它:

:mks!

这将保存会话,而不是文件本身!

如果你计划有多个会话,我更喜欢将它们保存在项目目录中的隐藏文件中:

:mks .session-name.vim

打开它(从同一目录):

vim -S .session-name.vim

保存会话:

:mks! .session-name.vim

由于会话保存在隐藏文件中,要查看它们不要忘记-a

ls -a

下面是唯一一个对我有用的对话。我从这里开始,你也可以从这里得到一个更完整/复杂的版本。

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

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