2010-12-07 4 views
1

Je suis un utilisateur utilisant le vimfootnotes plugin lors de la rédaction de courriels et de texte brut. Cependant, j'ai trouvé que ses raccourcis clavier causent beaucoup de problèmes quand je suis en train d'éditer des documents LaTeX. Je voudrais modifier le plugin pour avoir un certain niveau de contrôle sur quand il est chargé. J'ai essayé quelques choses différentes, mais à la fin j'ai enveloppé les raccourcis clavier que le plugin enregistre dans une fonction, puis j'appelle cette fonction des scripts filetype (dans ftplugin /) pour les types de fichiers où je veux utiliser des notes de bas de page.Contrôle du chargement des plugins vim

Est-ce une façon idiosyncratique de résoudre cela dans Vim, ou y a-t-il une meilleure façon de le faire?

Répondre

2

Après avoir visionné le code source du plug-in, je peux suggérer ce qui suit:

inoremap <Plug>Dummy1 <Plug>AddVimFootnote 
nnoremap <Plug>Dummy1 <Plug>AddVimFootnote 
inoremap <Plug>Dummy2 <Plug>ReturnFromFootnote 
nnoremap <Plug>Dummy2 <Plug>ReturnFromFootnote 

function s:FootnoteMaps() 
    if &filetype!=#'tex' 
     inoremap <buffer> \f <Plug>AddVimFootnote 
     nnoremap <buffer> \f <Plug>AddVimFootnote 
     inoremap <buffer> \r <Plug>ReturnFromFootnote 
     nnoremap <buffer> \r <Plug>ReturnFromFootnote 
    else 
     inoremap <buffer> #f <Plug>AddVimFootnote 
     nnoremap <buffer> #f <Plug>AddVimFootnote 
     inoremap <buffer> #r <Plug>ReturnFromFootnote 
     nnoremap <buffer> #r <Plug>ReturnFromFootnote 
    endif 
endfunction 
autocmd Filetype * call s:FootnoteMaps() 

crée d'abord les correspondances factices qui seront jamais déclenchées mais empêcheront le plugin de mettre ses propres applications à <Plug>AddVimFootnote et <Plug>ReturnFromFootnote. Deuxième (fonction + autocommande) va configurer les anciens mappages pour les types de fichiers autres que tex. Si j'étais sûr que l'événement filetype est déclenché avant le chargement du plugin, la première section ne sera pas nécessaire.

Notez qu'il ne prétend pas être une solution générique. La solution générique sera «examiner le code source du plugin et réfléchir un peu».

2

Pas que je sache. Vous voudrez peut-être vérifier ce thread. Je pourrais probablement le mettre dans un chemin qui n'est pas chargé par défaut (par exemple ~/.vim/manuellement_loaded) et écrire une fonction personnalisée pour la source quand vous en avez besoin. Vous pouvez également l'utiliser avec une autocommande sur le type de fichier, mais si vous avez ouvert les deux types par accident, cela causerait des problèmes.

Questions connexes