VIM标志和项目管理
发布时间:2020-12-15 21:37:25 所属栏目:安全 来源:网络整理
导读:所以我一直在 vim中使用NERDTree,因为它增加了能够浏览文件系统的强大功能.使用Bookmarks功能,它非常适合在项目之间切换. 但是,我已经开始在vim中越来越多地使用Marks并且想知道是否有人知道允许你有一组标记的插件.就像我想要`C转到我目前正在进行的项目中
所以我一直在
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! ~vimfilesprojects".pname.".vim" exe "wviminfo! ~vimfilesprojects".pname.".viminfo" endif endfunction autocmd VimLeave * call SaveProject() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |