I'm working on different projects and I want to select what plugins to enable (or disable) for every project. I'm using Pathogen to manage my plugins.
Plugins list:
.vim \
|-bundle \
|-vim-markdown
|-latexsuite
|-dirdo
|-localvimrc
|-nerdtree
|-autostart
|-doc
I've a main .vimrc
which by default enables all plugins and a local lvimrc
in every project main directory enabled by Localvimrc, in which I add some plugins to the disabled plugins list.
.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')
Everything works fine except vim-markdown which is not loaded when I open my blog's html/markdown files (I've already added *.html extension in ftdetect/markdown.vim
). Moreover, vim-markdown
is not listed in the output of :scriptnames
when editing my blog files.
Any hint?
As a VAM developer I could say that we had to add the following to make ftdetect plugins work. Briefly: adding paths to &rtp does not cause ftdetect files to be sourced, thus we have to source them manually. Pathogen also has a hack for this, but it uses filetype off
then filetype on
. This hack is not invoked when using pathogen#runtime_append_all_bundles
, thus either add
call pathogen#cycle_filetype()
after pathogen#runtime_append_all_bundles
or just use pathogen#infect
instead which does this for you. If this does not work try also adding
unlet! g:did_load_filetype
before calling pathogen.
You can also migrate to VAM: like pathogen it puts all plugins to separate directories, but unlike it you have to specify which ones you want to activate instead of activating all by default and blacklisting. Here you can’t use documented API and avoid running this hack at the same time.