Comment installer un plugin dans Vim / vi?

96

Comment installer un plugin dans Vim?

Est-ce que ça importe:

  • Si j'utilise vi ou Vim?
  • Si j'utilise gVim?
  • Quelle version de Vim j'utilise?
  • Quel est mon système d'exploitation?
elyashiv
la source

Réponses:

65

Pour installer un plugin, nous devons savoir sous quelle forme il se présente. Cela peut être:

Un seul .vimfichier est censé être placé dans le .vim/pluginrépertoire.

Un fichier Vimball peut être installé en l'ouvrant dans Vim et en le lançant :source %.

Un ensemble de fichiers de la structure de répertoires standard peut être installé en les copiant dans .vimun gestionnaire de packages de plug - ins ou à l’aide de ces derniers .

Les plugins peuvent dépendre de certaines fonctionnalités. Donc:

  • Cela peut avoir de l'importance si vous utilisez Vi ou Vim,
  • Cela peut avoir de l'importance si vous utilisez gVim ou non (gVim a généralement plus de fonctionnalités activées à la compilation que Vim sur la même distribution).
  • Quelle que soit la version de Vim utilisée, une fonctionnalité peut avoir été ajoutée après votre version de Vim.
  • Quel que soit le système d'exploitation utilisé, le fait que le plugin appelle des commandes externes peut être important.

Pour la plupart des plugins, cependant, cela n’a peut-être pas d'importance.

muru
la source
9
Cela compte vraiment si vous utilisez Vi - le concept de plug-in n'existe pas pour Vi. Bien sûr, taper visur n’importe quelle boîte moderne ne sera probablement lancé que vimsi certaines fonctionnalités sont désactivées. Je doute que beaucoup de gens ont accès à réelle Vi ces jours -ci .
tommcdo
37

vim-plug

J'aime utiliser le gestionnaire de plugins vim-plug .

Le problème avec l'installation manuelle d'un plugin est qu'il est assez difficile de le supprimer . vous avez souvent plusieurs fichiers différents dans des répertoires différents, vous devez les trouver et les supprimer manuellement.

La mise à niveau des problèmes est également difficile: que se passe-t-il si autoload/old-name.vimest renommé autoload/new-name.vim? Vous avez maintenant à la fois une ancienne et une nouvelle version d'un plugin.

vim-plugrésout ce problème en stockant chaque plugin dans son propre répertoire; il comprend également une commande permettant d’installer / supprimer facilement un plugin, de sorte que vous n’ayez pas à vous perdre avec la décompression des plugins, etc.

L'un des principaux avantages de vim-plug par rapport à Pathogen est que vim-plug vous permet d'installer et de supprimer des plug-ins plus facilement. Tout ce que fait Pathogen, c’est que chaque plugin se trouve dans un répertoire séparé.

vim-plug s'appuie sur git ; pour MS Windows, vous voulez msysgit .

Vous pouvez définir des plugins dans votre vimrc comme ceci:

call plug#begin('~/.vim/plugged')

" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')

Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc

call plug#end()

Puis redémarrez Vim, puis installez les plugins avec:

:PlugInstall

Cela mettra les plugins dans ~/.vim/pluggedou $HOME\vimfiles\pluggedpour MS Windows.

Vous pouvez ajouter cet extrait de la FAQ à votre fichier vimrc avant l' plug#begin()appel:

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall
endif

Notez que vous avez besoin curlpour que cela fonctionne. Ceci est presque toujours disponible sous Linux et OSX, mais pas sous MS Windows; alors cette astuce ne fonctionnera pas là-bas ...

Pour supprimer un plugin, supprimez-le du fichier vimrc et exécutez:

:PlugClean

Notez que vim-plug ne prend pas en charge l'installation de scripts à partir du site Web de scripts Vim, mais que ces scripts sont mis en miroir sur GitHub . Il n'est donc pas nécessaire de le faire.

Cela présente également quelques avantages supplémentaires, tels qu'une mise à jour plus facile du plug-in et un chargement à la demande pour de meilleures performances. Vous pouvez également facilement copier votre vimrc sur un autre ordinateur, l'exécuter :PlugInstallet disposer de tous vos plugins.

Notez qu'il y a plus de gestionnaires de plugins; Il m'arrive d'utiliser vim-plug. Voir aussi: Quelle est la différence entre les gestionnaires de packages vim?

Martin Tournoij
la source
1
L'un des avantages les plus importants de vim-plug par rapport à d'autres est l'installation / la mise à jour parallèle de plugins
r3bo0t
"Ces scripts sont reflétés sur GitHub, il n’est donc pas nécessaire de le faire." Malheureusement, le racloir a cessé de fonctionner il y a longtemps. github.com/vim-scraper/vim-scraper/issues/…
Bluu
@Bluu Ouais, j'ai contacté le responsable de cette dernière année; Il y a des éléments techniques qui nécessitent une mise à jour, et personne ne s’intéresse vraiment à cette mise à jour: - / Cela reste néanmoins utile, car de nombreux scripts ne sont pas mis à jour très souvent (en particulier ceux qui ne sont pas sur GitHub).
Martin Tournoij
25

Agent pathogène

Pathogen est un gestionnaire de chemins d’exécution qui charge les plugins dans Vim. Cela simplifie l'installation du plugin; Voilà comment cela fonctionne:

remarque: si vous utilisez Windows, remplacez ~/.vimpar $HOME\vimfiles.

  1. Copier pathogen.vimvers ~/.vim/autoload/pathogen.vim.

  2. Créez le ~/.vim/bundlerépertoire s'il n'existe pas déjà.

  3. Ajoutez la ligne suivante au tout début de votre .vimrc:

    execute pathogen#infect()
    
  4. Vous avez terminé! Lorsque vous souhaitez ajouter un plug-in, copiez simplement le répertoire complet du plug-in ~/.vim/bundleou le git clonedéposez-y. Par exemple:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Avertissement: si votre plugin se présente sous la forme d'un .vimfichier, il ne fonctionnera pas avec Pathogen. Copiez-le dans ~/.vim/plugin(vous devrez peut-être créer ce répertoire s'il n'existe pas).

Poignée de porte
la source
5
Remarque: l'agent pathogène n'est pas un gestionnaire de plug-in.
Romainl
ou git submodule add(au lieu de git clone) si votre configuration vim fait déjà partie de votre propre projet git.
Martin York
@romainl c'est quoi alors?
RodrikTheReader
3
C'est un gestionnaire de runtimepath. Comme dans il gère l' runtimepathoption et c'est tout. Il ne traite pas de la mise à jour, de l'ajout, de la récupération, de la suppression de plugins.
romainl
1
Voir également l'excellent résumé de @romainl sur l'utilisation de Pathogen .
icc97
23

Vim 8+ / Neovim

La version 8 introduit un nouveau mécanisme de packages qui remplace largement le besoin de gestionnaires de plug-ins existants (pathogène, vim-plug, vundle, etc.) au moment de la rédaction de cet article (2017).

De la documentation :

Un paquet Vim est un répertoire qui contient un ou plusieurs plugins.

Un répertoire de package contient deux sous-répertoires:

  • start/ - contient des plugins qui seront automatiquement chargés
  • opt/ - contient des plugins chargés à la demande avec :packadd

Cela peut sembler un peu compliqué, mais en pratique, tout ce que vous avez à faire est d’ajouter votre plugin ici :

                 ↓ package name
~/ .vim / pack / bundle / start / some-plugin
          ↑ packages dir          ↑ plugin dir

Sous Windows : utilisez ~\vimfiles\pack\au lieu de~/.vim/pack/

Par convention, nous avons utilisé le nom de paquet "bundle" comme répertoire qui contiendra tous nos plugins. Vous pouvez utiliser le nom de votre choix et même placer vos plugins dans des répertoires de paquetages séparés si vous le souhaitez vraiment.

Exemple: installation de sensible.vim

mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git

Sous Windows : utilisez ~\vimfiles\pack\au lieu de~/.vim/pack/

La prochaine fois que vous lancerez Vim, le plugin se chargera automatiquement.

Michael Kropat
la source
3
Si l'un d'entre eux .vimest sous contrôle de version, il pourrait être préférable d'installer des plugins avec les sous-modules de git; voir shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton
S'il y avait une réponse basée sur le temps, ce serait la réponse acceptée à ce jour.
Amin NAIRI
12

N'oublions pas le grand et puissant Vundle !

Vundle est un gestionnaire de plugins complet, avec des fonctionnalités pour:

  • Rechercher des plugins (utiliser :PluginSearch)
  • Installer des plugins (utiliser :PluginInstall)
  • Mise à jour des plugins (en utilisant :PluginUpdate)
  • Gestion du chemin de chargement du plug-in dans le fichier .vimrc (commentez simplement les entrées de plug-in que vous ne voulez pas charger)
  • Supprimer les plugins dont vous ne voulez plus (utiliser :PluginClean)

Comme vous pouvez le constater, cela ressemble beaucoup au gestionnaire vim-plug mentionné par Carpetsmoker. Je ne sais pas laquelle est arrivée en premier, mais leurs API me ressemblent beaucoup, tout comme le processus d'installation .

Cody Poll
la source
La bonne chose à propos de Vundle est similaire à vim-plug: vous pouvez stocker tous vos plug-ins dans votre .vimrc. Ainsi, lors de l'installation sur un nouveau serveur, il vous suffit d'une installation de Vundle + votre .vimrcpour tout installer. De plus, vous pouvez commenter vos plugins et les «nettoyer», mais vous pouvez les commenter dans des mois ou des années plus tard, lorsque vous aurez oublié leur nom.
icc97
De plus, j'aime bien Vundle car il est relativement convivial pour les débutants. Cela ne donne quasiment qu'une façon de faire les choses et fonctionne de manière similaire à Sublime Text.
icc97
1

Très probablement, votre plugin sera un fichier .vim unique.

Si tel est le cas, j'ai cherché de l'aide et ai expérimenté et compris ce qui suit. Dans vim (mode commande), tapez:

:set runtimepath

Cela vous montrera une série de répertoires. Certains de ces répertoires auront un pluginsous - répertoire. Le fait de placer n'importe quel fichier .vim dans l'un de ces pluginsous-répertoires le chargera automatiquement au démarrage de vim, où que vous soyez.

Pour moi, sur Linux Linux, j’ai trouvé que cela /usr/share/vim/vim74/pluginfonctionnait bien, à installer pour tous les utilisateurs. Vous aurez peut-être besoin d'une autorisation root pour copier un fichier ici (préfixez votre commande cpou mvpar sudo).

Homme d'étoiles
la source
3
IMHO ce n'est pas la meilleure pratique. Notez que vous avez vim74, ce qui signifie qu'il est spécifique à la version, donc la mise à niveau vers Vim 8.0 perdra ce plugin. Une méthode plus sûre serait de l'utiliser /etc/vim/pour cela (créez-le s'il n'est pas présent, et ajoutez ce chemin à runtimepaths'il n'est pas disponible dans /etc/vimrc)
grodzik
3
Pour ajouter au commentaire @grodzik: Most likely, your plugin will be a single .vim fileJe ne suis pas d'accord. Une très grande majorité des plugins sont livrés avec un .txtfichier contenant le document et vous devez générer les tags pour obtenir un document fonctionnel. De plus, beaucoup de plugins sont livrés avec un autoloadrépertoire. Je pense que l'utilisation d'un gestionnaire de plugins est une meilleure solution que la gestion manuelle de votre runtimepath
statox
-1 /usr/share/vim/vimXXest le stock d'exécution et n'est pas l'endroit pour la configuration du site / plugins. Au lieu de cela, les configs / plugins de site doivent être placés partout où des $VIMpoints sur ce système (voir :h vimfiles). C'est généralement /usr/share/vimle cas pour Ubuntu et contient des liens symboliques vers /etc/vim. En général, /usr/local/c'est l'endroit de facto pour la configuration du site en dehors du gestionnaire de packages . Notez que Neovim utilise des répertoires $XDG_(CONFIG|DATA)_DIRSet des siterépertoires, fournissant de meilleurs paramètres par défaut prêts à l'emploi pour les configurations de site.
ZeroKnight
1

Vire utilise le dernier format de pack pour installer des plugins et prend en charge Vim et Neovim. Vous n'avez pas besoin de savoir où tout va. Il suffit de fournir un vimrc et Vire se chargera du reste.

génotrance
la source