所以我一直在
vim中使用NERDTree,因为它增加了能够浏览文件系统的强大功能.使用Bookmarks功能,它非常适合在项目之间切换.
但是,我已经开始在vim中越来越多地使用Marks并且想知道是否有人知道允许你有一组标记的插件.就像我想要`C转到我目前正在进行的项目中的配置文件.我可以在每次切换项目时设置它,但是想知道是否有人知道打包它们的好方法.
在考虑它时,我认为如果它只是在你进入一个目录时读取一个文件(比如用NERDTree在书签之间切换……)就太棒了.
无论如何,任何人都知道这样的事情?
解决方法
事实证明,标记不存储在
session中,而是存储在viminfo文件中!因此,我使用了vimrc中的代码作为基础,并在
vim help files中的会话部分底部找到了代码,以创建一个允许我保存会话和viminfo文件的函数.创建对我有用的基本项目管理!
这是我最终得到的代码.
if version >= 700 " localoptions has to be here: " for some reason,new session loading code fails to set filetype of files in session set sessionoptions=blank,tabpages,folds,localoptions,curdir,resize,winsize,winpos endif command! -nargs=1 Project :call LoadProject('<args>') command! -nargs=+ SaveProject :call SaveProject('<args>') let s:projectloaded = 0 let s:loadingproject = 0 let s:projectname = '' function! LoadProject(name) let s:projectloaded = 1 let s:projectname = a:name exe "source ~/vimfiles/projects/".a:name.".vim" exe "rviminfo! ~/vimfiles/projects/".a:name.".viminfo" endfunction function! SaveProject(name) if a:name ==# '' if s:projectloaded == 1 let pname = s:projectname endif else let pname = a:name endif if pname !=# '' let s:projectloaded = 0 let s:projectname = '' exe "mksession! ~\\vimfiles\\projects\\".pname.".vim" exe "wviminfo! ~\\vimfiles\\projects\\".pname.".viminfo" endif endfunction autocmd VimLeave * call SaveProject()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。