我正在处理不同的项目,我想为每个项目选择启用(或禁用)的插件。我正在使用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
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
。
任何提示?
答案 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。