logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 16-08-2014 15:19:42

Lunatic
Membre
Lieu : Lyon
Distrib. : Fedora 24
Noyau : Linux 4.6.5-300.fc24.x86_64
(G)UI : Gnome
Inscription : 03-08-2013
Site Web

[Contourné] Vim : ne charger les plugins que sous certaines conditions

Hello tou·te·s,

Le titre résume bien le question : je souhaite savoir s'il est possible de n'activer un plugin que sous certaines conditions. Exemple concret : j'ai installé (via Vundle) le plugin MarkdownFootnotes qui permet d'insérer facilement des notes de bas de pages en Markdown.

Évidemment, cela n'est pertinent que si l'on édite un fichier markdown…

J'ai déjà dans mon .vimrc une fonction qui règle 2 ou 3 trucs en fonction du type de fichier :

au BufEnter,BufNew *.md,*.markdown call SetMarkdownOptions()
function SetMarkdownOptions()
    set filetype=markdown
    …
endfunction
 



Aussi me demandé-je comment désactiver le plugin MarkdownFootnotes par défaut pour ne l'activer que via cette fonction SetMarkdownOptions().

Merci big_smile

Dernière modification par Lunatic (18-08-2014 16:18:30)


Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000

(J'applique la règle de proximité)

Hors ligne

#2 18-08-2014 16:18:15

Lunatic
Membre
Lieu : Lyon
Distrib. : Fedora 24
Noyau : Linux 4.6.5-300.fc24.x86_64
(G)UI : Gnome
Inscription : 03-08-2013
Site Web

Re : [Contourné] Vim : ne charger les plugins que sous certaines conditions

Je passe en « contourné » : je déplace le script en question dans ~/.vim/ftplugin/markdown/ pour qu'il ne soit actif que lors de l'édition de fichiers markdown. Du coup, désavantage, le plugin n'est plus géré par Vundle.

Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000

(J'applique la règle de proximité)

Hors ligne

#3 01-10-2015 07:53:23

D@mien
Membre
Distrib. : Gnoulinusque
Noyau : Linux 4\.\d+(\.\d+)?-[1-9]+-custom
(G)UI : i3
Inscription : 22-03-2014

Re : [Contourné] Vim : ne charger les plugins que sous certaines conditions

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. smile
++


% cat /usr/include/sys/errno.h
#define EPERM           1               /* Operation not permitted */
[...]
#define EMACS           666             /* Too many macros */

Hors ligne

Pied de page des forums