Cette page est considérée comme vétuste et les informations qu'elle contient sont sujettes à caution.

Apportez votre aide…

Ceci est une ancienne révision du document !


Vi IMproved

Vim est un éditeur de texte pour le terminal sous GNU/Linux.

Il est très apprécié des utilisateur·ice·s avancé·e·s et des développeur·euse·s pour toutes ses fonctions qui en font un très bon IDE (coloration syntaxique de 200 langages, complétion automatique, comparaison de fichiers, recherche évoluée, …) et est extensible par des scripts.

Vi et Vim ne sont pas intuitifs et pas adaptés aux personnes qui ne sont pas intéressées par l'informatique, ou n'en ont pas un usage qui justifie une importante période d'apprentissage. Vi a peu d'intérêt en dehors de raccourcis clavier qui accélère l'édition du texte quand ils sont maîtrisés.

Si on peut espérer gagner du temps sur le long terme, cette courbe d'apprentissage est dans tous les cas très raide.1)

Pour éditer rapidement du texte depuis un terminal, nano est bien plus accessible et simple d'utilisation.

Contrairement à la plupart des éditeurs, Vim est un éditeur modal2). Selon le mode où vous vous trouvez, les touches auront des actions différentes.

Pour que Vim soit l'éditeur par défaut pour l’éditions de tout fichier de configuration, il est intéressant d'exécuter :

select-editor 
 
Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed
 
# ON CHOISIT vim.basic, donc le choix 2…
Choose 1-4 [1]: 2

et de le faire avec sudo pour que ce soit aussi le cas quand on éditer des fichiers système, par exemple quand on fait un sudo crontab -e 3)

Installation

Par défaut, votre système a une version basique de Vim, procurée par le paquet vim-tiny, mais n'offrant pas toutes les possibilités de cet éditeur.

Commencez par installer le paquet vim.

Si vous souhaitez une interface graphique pour utiliser Vim, reportez-vous à la page gvim.

neovim est un fork Vim plus orienté IDE.

Utilisation

Tutoriel

L'installation de Vim fournit un programme spécifique pour l'apprentissage de Vim. Il faut compter environ 30 minutes pour faire le tour de ce tutoriel, mais cela est très utile pour vous familiariser avec les commandes les plus courantes de Vim.

Pour le lancer il vous suffit d'aller dans un terminal et de taper :

vimtutor

(ou pour la version graphique, lancez l'application gvimtutor avec la combinaison de touches Alt+F2 ou dans le terminal)

Principe de base

Pour créer ou modifier un fichier avec Vim il suffit de taper :

vim /chemin/texte

Si le fichier n'existe pas il sera créé à l'enregistrement.

Le fichier s'affiche. Vous êtes dans le mode commande4), c'est à dire que vous pouvez déplacer le curseur comme vous le souhaitez avec les touches h, j, k, l ou avec les flèches ←, ↓, ↑, → et entrer des commandes pour agir sur le texte. Si vous tapez un nombre avant une commande, elle se répétera d'autant.

Pour accéder au mode insertion5) afin de modifier ou d'insérer du texte, il suffit d'appuyer sur i dans le mode commande. Appuyer sur la touche Échap pour en sortir et repasser en mode commande.

Commandes de base

Exemples Action
i Passer dans le mode insertion
A Ajouter en fin de ligne
:q Quitter
:q! Quitter sans enregistrer
:w Enregistrer le fichier
:wq Enregistrer et quitter
:x Enregistrer (seulement en cas de modification) et quitter
:set paste Passer en mode "collage"

Commandes d'édition:

Exemples Action
u Annuler la dernière opération
Ctrl+R Rétablir la dernière opération annulée
. Répéter la dernière opération d'édition
yy Copier la ligne (4yy = 4 lignes)
dd Couper la ligne (4dd = 4 lignes)
p Coller après (P = insérer avant)
x Effacer le caractère
dw Effacer le texte jusqu'à la fin du mot
diw Effacer le mot sous le curseur

Recherche / remplacement

Exemples Action
/ Rechercher du texte
n Rechercher l'occurence suivante
N Rechercher l'occurence précédente
cw Remplacer le texte jusqu'à la fin du mot
ciw Remplacer le mot
C Remplacer jusqu'en fin de ligne
. Répéter la dernière opération d'édition
:%s/A/B/g Remplacer tous (g) les A par des B

Fenêtrage

Exemples Action
<control-w>-s Diviser horizontalement
<control-w>-v Diviser verticalement
<control-w>-w Passer à la fenêtre suivante
<control-w>-n Ouvrir un fichier vierge dans une nouvelle fenêtre

Indiquer (forcer) la coloration syntaxique

Il peut-être pratique de pouvoir indiquer la coloration syntaxique, en particulier lorsqu'on édite des fichiers sans extension (ou non représentative du type de fichier), pour cela, il faut saisir dans Vim :

# :set syntax=<type de syntaxe>
# par exemple pour avoir la coloration pour le fichier /var/log/syslog.1 (en cours d'édition) :
:set syntax=messages
# pour un fichier .env.local ou similaire :
:set syntax=sh

6)
Pour connaître la liste des types,

cd /usr/share/nvim/runtime/syntax && grep -rn "Language:"

Extensions, plugins et packages

Il existe de nombreuses extensions à Vim, notamment pour les développeurs, pour ajouter des fonctionnalités telle que l'arborescence du répertoire de travail, la liste des fonctions et variables, des colorations spécifiques…

Pour lister les plugins installés, dans Vim, tapez la commande:

:scriptnames 

Les plugins

C'est assez simple, ils se composent généralement de deux fichiers, un .vim et un .txt.

  • Le .vim peut simplement être déposé dans /usr/share/vim/vim80/plugin/,
  • le .txt dans /usr/share/vim/vim80/doc/.

Les packages

C'est plus compliqué, mais il existe des outils, tel que Pathogen ou Vundle pour simplifier leur installation.

Voir aussi


Contributeurs : YoBoY, Mr_Djez, bcag2

1)
Voir par exemple (en) ce sujet sur lequel est discutée la technique à employer pour copier du texte d'un fichier à un autre.
2)
éditeur modal: possède différents modes de fonctionnement commande, insertion
3)
cf. CRON pour plus d'infos
4) , 5)
éditeur modal : possède différents modes de fonctionnement commande, insertion