vim:保存打开的文件列表,然后打开所有文件
我想保存打开的文件列表(:ls),退出gvim,启动gvim,重新打开以前打开的所有文件。我不想使用:mksession,因为它不能正常工作(可能是因为我正在使用的一些插件)可能与:mksession的错误/冲突只是在启用了部分:mksession时才出现,而您并不关心 试试这个:vim:保存打开的文件列表,然后打开所有文件,vim,Vim,我想保存打开的文件列表(:ls),退出gvim,启动gvim,重新打开以前打开的所有文件。我不想使用:mksession,因为它不能正常工作(可能是因为我正在使用的一些插件)可能与:mksession的错误/冲突只是在启用了部分:mksession时才出现,而您并不关心 试试这个: :set sessionoptions=buffers :mksession 有几个插件将vim的会话管理做得更进一步 并提供一些您可能喜欢的命令和自动保存功能 另一个是: 非常简短,可能是vimrc之类的东西。另
:set sessionoptions=buffers
:mksession
有几个插件将vim的会话管理做得更进一步 并提供一些您可能喜欢的命令和自动保存功能 另一个是:
非常简短,可能是vimrc之类的东西。另一个答案建议使用会话管理器插件,这很好。但我有一个非常轻量级的替代方案,我将把它留给后人。(因为这个问题已经有一段时间没有出现了。) 下面的代码在关机时自动保存当前会话,并设置一个键命令以手动重新加载它(在我确实需要新文件的新会话时非常方便)。如果您确实希望在vim再次启动时无条件恢复上一个会话,请取消对“VimCenter”行的注释 作为一个额外的功能,这还允许手动保存和恢复一个单独的会话 在~/.vim/vimrc中的某个地方 每当vim关闭时,自动保存当前会话 autocmd vimleeve*mksession!~/.vim/shutdown\u session.vim “恢复“关闭会话” noremap:source~/.vim/shutdown_session.vim “如果您真的想,下一行应该恢复关机会话 “自动,只要您启动vim。(为了以防万一,暂时不予评论) “有人只是复制/粘贴整个块) " “autocmd VimCenter源~/.vim/shutdown_session.vim “使用手动保存会话 noremap:mksession!~/。vim/manual_session.vim “使用调用手动保存的会话 noremap:source~/.vim/manual_session.vim
用户可以使用上面提到的“sessionoptions”选项为自己定义会话中的内容:
帮助sessionoptions
我在您的中找到了设置viminfo的方法。vimrc还可以保存最后一个已知的缓冲区列表。
这是我的
“设置viminfo以在退出时保存信息
“帮助usr_21.txt
“'5:标记将被记住最多10个以前的文件
“”50:每个寄存器最多可保存100行
“:20:最多会记住20行命令行历史记录
“%:保存和恢复缓冲区列表
设置viminfo='5,f1,\'50,:20,%,n~/.vim/viminfo
对于那些跟我有同样问题的人来说,这只是一个小提示:你可以使用命令
:so session.vim
,或者从命令行vim-S session.vim
在现有的vim窗口中加载一个会话,如果你正在使用vim的shell崩溃,你总是能拿回你的文件吗?我喜欢vim。我已经使用它20多年了,现在仍然有很多命令可以让它变得更简单、更强大。这个问题向我介绍了另外两个。谢谢。
" Automatically save the current session whenever vim is closed
autocmd VimLeave * mksession! ~/.vim/shutdown_session.vim
" <F7> restores that 'shutdown session'
noremap <F7> :source ~/.vim/shutdown_session.vim<CR>
" If you really want to, this next line should restore the shutdown session
" automatically, whenever you start vim. (Commented out for now, in case
" somebody just copy/pastes this whole block)
"
" autocmd VimEnter source ~/.vim/shutdown_session.vim<CR>
" manually save a session with <F5>
noremap <F5> :mksession! ~/.vim/manual_session.vim<cr>
" recall the manually saved session with <F6>
noremap <F6> :source ~/.vim/manual_session.vim<cr>