VIM 标记和项目管理

标签 vim project-management bookmarks

所以我一直在 vim 中使用 NERDTree,因为它增加了能够浏览文件系统的强大功能。借助书签功能,它非常适合在项目之间切换。

但是,我已经开始在 vim 中越来越多地使用 Marks,并且想知道是否有人知道允许您拥有一组标记的插件。就像我希望 `C 转到我目前正在处理的项目中的配置文件一样。我每次切换项目时都可以设置它,但想知道是否有人知道打包它们的好方法。

想想看,如果它在您进入目录时仅读取文件(例如使用 NERDTree 在书签之间切换...),那将是非常棒的。

无论如何,有人知道这样的事情吗?

最佳答案

所以事实证明标记没有存储在 session 中。 , 但都存储在 viminfo 文件中!因此,我使用了您的 vimrc 中的代码作为基础,并使用了在 vim help files 中 session 部分底部找到的代码。创建一个函数,允许我保存 session 和 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()

关于VIM 标记和项目管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959330/

相关文章:

vim - 从 Cygwin 编译 vim (Versin>=7.4.399) 时显示错误 "collect2: error: ld returned 1 exit status"

vim - 如何在 Vim 中重复任何命令,例如 emacs 中的 "C-x z"?

Vim - 跟踪准确的空白计数

vim - 快速修复列表未打开文件

project-management - Scrum中的故事估算

project-management - 你用什么工具做燃尽图?

javascript - AddFavorite JS 不适用于 chrome

project-management - 谁应该给出高级别的项目估算?

python - 具有相同名称的 PyPDF2 嵌套书签不起作用

javascript - 当我尝试在 Chrome 中创建书签时,控制台中出现错误 "browser is not defined"