使用Pathogen + Localvimrc选择性地启用VIM插件

时间:2012-07-24 12:06:53

标签: markdown vim pathogen

我正在处理不同的项目,我想为每个项目选择启用(或禁用)的插件。我正在使用Pathogen来管理我的插件。

插件列表:

.vim \
     |-bundle \
              |-vim-markdown
              |-latexsuite
              |-dirdo
              |-localvimrc
              |-nerdtree
     |-autostart
     |-doc

我有一个主.vimrc,它默认启用Localvimrc启用的每个项目主目录中的所有插件和本地lvimrc,其中我向禁用的插件添加了一些插件列表。

.vimrc

" Enables vim-pathogen and disables nearly all plugins
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
let g:pathogen_disabled = []
" This makes vim invoke Latex-Suite when you open a tex file.
filetype plugin on

latex-project的lvimrc

let g:pathogen_disabled = []
call add(g:pathogen_disabled, 'vim-markdown')

博客项目的lvimrc

let g:pathogen_disabled = []
call add(g:pathogen_disabled, 'latexsuite')

问题

除了vim-markdown之外,一切正常,当我打开博客的html / markdown文件时我没有加载(我已在ftdetect/markdown.vim中添加了* .html扩展名)。此外,编辑我的博客文件时,vim-markdown的输出中未列出:scriptnames

任何提示?

3 个答案:

答案 0 :(得分:1)

您知道可以拥有多个捆绑目录吗?您可以为不同的项目创建不同的包目录。

所以你可以这样做:

runtime bundle_main/pathogen/autoload/pathogen.vim
call pathogen#infect('bundle_main')
call pathogen#infect('bundle_projectX')
call pathogen#infect('bundle_projectY')
call pathogen#helptags()

您也可以有条件地加载插件文件夹。

关于vim-markdown:有很多实现。见https://github.com/hallison/vim-markdown似乎更积极地维护。

答案 1 :(得分:0)

为每个filetype plugin on添加.lvimrc是否有助于解决问题?

答案 2 :(得分:0)

作为VAM开发人员,我可以说我们必须添加the following才能使ftdetect插件正常工作。简而言之:添加到& rtp的路径不会导致获取ftdetect文件,因此我们必须手动获取它们。病原体也有a hack for this,但它使用filetype off然后filetype on。使用pathogen#runtime_append_all_bundles时不会调用此hack,因此请添加

call pathogen#cycle_filetype()

pathogen#runtime_append_all_bundles之后或仅使用pathogen#infect而不是为您执行此操作。如果这不起作用,请尝试添加

unlet! g:did_load_filetype

在致病原体之前。

您也可以迁移到VAM:就像病原体一样,它将所有插件放在不同的目录中,但与之不同的是,您必须指定要激活哪些插件,而不是默认激活所有插件并列入黑名单。在这里,您不能使用已记录的API,并避免同时运行此hack。