我用Google搜索了一个解决方案(c.f. http://vim.wikia.com/wiki/Open_the_last_edited_file):
" Go to last file(s) if invoked without arguments.
autocmd VimLeave * nested if (!isdirectory($HOME . "/.vim")) |
\ call mkdir($HOME . "/.vim") |
\ endif |
\ execute "mksession! " . $HOME . "/.vim/Session.vim"
autocmd VimEnter * nested if argc() == 0 && filereadable($HOME . "/.vim/Session.vim") |
\ execute "source " . $HOME . "/.vim/Session.vim"
但似乎有一些冲突(在vim7.4中):
processing vim/vimfiles/ftpugins/latex-suite/folding.vim with error E227: mapping Tex_RefreshFolds has exists
问题是什么以及如何解决这个问题?
答案 0 :(得分:1)
默认情况下,Vim会话还存储所有当前定义的映射。在您的情况下,该映射会干扰Latex套件中的<unique>
- 约束映射。
通常,您不需要保留映射;它们来自插件,并在下一个Vim启动时自动重新定义(仅手动输入:map
将丢失)。通过
:set sessionoptions-=options
在~/.vimrc
中(它还会减少会话文件的大小并加快加载速度)。
答案 1 :(得分:1)
如果错误抱怨相同的现有映射(可能是从会话中恢复),则该错误不会造成伤害。如果你无法解决根本原因,你可以(作为最后的手段)通过将:silent!
添加到原始autocmd来使错误(以及任何其他错误)沉默:
...
\ execute "silent! source " . $HOME . "/.vim/Session.vim"