我在不同的项目上工作,我想为每个项目选择要启用(或禁用)的插件。我正在使用病原体来管理我的插件。
插件列表:
.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 onlatex项目的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扩展)。此外,在编辑我的博客文件时,:scriptnames的输出中没有列出vim-markdown。
有什么提示吗?
发布于 2012-07-24 21:48:56
作为一名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。
发布于 2012-07-24 21:48:47
你知道你可以有多个捆绑包目录吗?您可以为不同的项目创建不同的包目录。
所以你可以这样做:
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,它似乎是更积极的维护。
发布于 2012-07-24 20:58:42
在每个.lvimrc中添加filetype plugin on能帮助解决这个问题吗?
https://stackoverflow.com/questions/11630522
复制相似问题