Salut (gros déterrage avec la 18 tonnes, désolé...)
Je cherchais aussi à avoir un chargement lazy et limiter la pollution des map/commandes et j'ai tester vim-plug qui va bien pour cette approche avec un ajout personnel.
" ~/.vimrc
call plug#begin('~/.vim/plugged')
" Tous les plugins qui suit ne seront chargés qu'explicitement
" Voir la doc pour les autres méthode automatique :)
Plug 'ludovicchabant/vim-lawrencium', {'on': 0}
Plug 'tpope/vim-fugitive', {'on': 0}
Plug 'majutsushi/tagbar', {'on': 0}
Plug 'vim-scripts/AnsiEsc.vim', {'on': 0}
Plug 'lilydjwg/colorizer', {'on': 0}
Plug 'scrooloose/syntastic', {'on': 0}
call plug#end()
" commande avec complétion pour charger les plugins à la demande
command -nargs=1 -complete=customlist,s:unloaded_comp
\ PlugLoad :call plug#load(<q-args>)
" retourn les addons enregistrées mais non chargées
function s:unloaded_comp(ArgLead, CmdLine, CursorPos)
if !exists('s:plug_script_id')
" petit hack pour appeler les fonctions privées de plug.vim:)
redir! => l:scripts
silent scriptnames
redir END
for l:script in split(l:scripts, "\n")
if l:script =~ 'autoload/plug.vim$'
let s:plug_script_id = matchstr(l:script, '\v%(\_\s*)@<=\d+%(:\s+)@=')
break
endif
endfor
endif
return filter(copy(g:plugs_order),
\ 'match(<SNR>{s:plug_script_id}_loaded_names(), v:val) == -1 '
\ . '&& !has_key(g:plugs[v:val], "for") '
\ . '&& (empty(a:ArgLead) || v:val =~? "\\<".a:ArgLead)' )
endfunction
Voir aussi l'option 'exrc' pour configurer différemment son vim pour chaque projet.
Voilà, je ne sais si çà colle exactement à tes envies/besoins, mais je partage quand même.
++
[Contourné] Vim : ne charger les plugins que sous certaines conditions
0 commentaires:
Enregistrer un commentaire