Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim:保存打开的文件列表,然后打开所有文件_Vim - Fatal编程技术网

vim:保存打开的文件列表,然后打开所有文件

vim:保存打开的文件列表,然后打开所有文件,vim,Vim,我想保存打开的文件列表(:ls),退出gvim,启动gvim,重新打开以前打开的所有文件。我不想使用:mksession,因为它不能正常工作(可能是因为我正在使用的一些插件)可能与:mksession的错误/冲突只是在启用了部分:mksession时才出现,而您并不关心 试试这个: :set sessionoptions=buffers :mksession 有几个插件将vim的会话管理做得更进一步 并提供一些您可能喜欢的命令和自动保存功能 另一个是: 非常简短,可能是vimrc之类的东西。另

我想保存打开的文件列表(:ls),退出gvim,启动gvim,重新打开以前打开的所有文件。我不想使用:mksession,因为它不能正常工作(可能是因为我正在使用的一些插件)

可能与:mksession的错误/冲突只是在启用了部分:mksession时才出现,而您并不关心

试试这个:

: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>