7 juin 2020
Ce texte fait partie d’une petite collection de notes mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 France.
Apparu en 1976, l’éditeur de textes vi
est présent sur la majorité des systèmes Unix (vim
, version améliorée). C’est parfois le seul éditeur installé au départ, et souvent l’éditeur de textes par défaut pour certaines commandes (git
, par exemple) qui demandent à modifier un texte.
On peut en préférer légitimement d’autres (emacs
, par exemple !), mais il est important :
Le but de ce document est de vous montrer très rapidement le strict minimum pour, disons, modifier un petit fichier texte sur une machine où votre éditeur favori n’est pas (ou pas encore) installé. Il y a bien sûr beaucoup plus de choses à savoir pour l’utiliser efficacement.
L’éditeur vi
est destiné à être utilisé avec un écran alphanumérique (texte seulement, pas de graphique) ou une émulation de terminal.
Quand on l’ouvre, on voit le texte que l’on édite, et une ligne d’état en bas. Dans le texte, le curseur (sous forme de bloc) clignote. La fin du texte est marquée par des “tildes” en première position.
C’est un éditeur de textes visuel modal
, c’est-à-dire que l’effet de ce qu’on tape dépend du mode où on se trouve. Par exemple, taper un caractère e
:
e
à la position du curseur, qui se déplace.Il y a d’autres modes à connaître
Pas de panique pour s’y retrouver:
vi
, le mode command-line.Pour sortir de vi
, le principe est de passer en mode “command line” (touche “:
”) pour taper la commande q
puis Entrée.
En pratique, vous avez tapé au hasard sur des touches, et donc vous ne savez pas dans quel mode vous êtes. Donc
:
” pour passer en mode “command line”.q!
” puis la touche Entrée.Pourquoi le point d’exclamation ? Si en tapant au hasard, vous avez inséré des caractères involontairement dans le “tampon d’édition”, vi
ne vous laisse pas sortir sans avoir sauvegardé. Le point d’exclamation après le q
sert à insister.
Si vous n’aviez fait qu’entrer dans vi
, il suffisait de faire
:q
Entrée
L’éditeur vi
a été conçu pour un usage intensif par les programmeurs. Ceci exclut l’emploi de la souris (peu fréquente en 1976) qui, si elle rassure les débutants, ralentit énormément le travail à cause du déplacement de l’avant bras, et de la coordination nécessaire entre yeux et main.
Le minimum à savoir :
hjkl
déplacent le curseur d’une position. (h à gauche, j en bas, k en haut, l à droite).Un peu plus :
Avant d’aller plus loin, il est important de savoir qu’en cas de fausse manipulation, on peut annuler des dernières modifications par u
(undo).
On passe du mode normal au mode insertion en tapant “i
” (pour insert).
Le texte qu’on tape ensuite est inséré avant l’emplacement du curseur.
Quelques autres touches utilisables :
En fin de ligne, vous trouverez peut-être plus pratique d’ajouter après le curseur, avec “a
” (append) au lieu de “i
”.
Le mode “replace” est similaire, sinon qu’on y rentre par “R
”, et que ce qu’on tape remplace ce qui est déjà là, et que la touche “espace arrière” annule la dernière frappe.
Pour copier :
v
”pour passer en mode visuel,y
”, qui sauvegarde la zone dans un tampon (to yank : arracher, tirer d’un coup sec).Pour couper au lieu de copier :
d
(delete) au lieu de y
.Dans les deux cas, on est revenu en mode normal.
Pour coller ce qui a sauvegardé
P
ou p
pour insérer avant le curseur, ou après.Pour sauver, on passe en mode commande (Échappement + “:
”).
w
sauve le tampon d’édition dans le fichier associé,wq
sauve et quitte.ESC:wq final.txt [Entree]
Pour finir, si vous cherchez quelque chose dans le texte :
/
” puis le début de ce que vous cherchez. La recherche est incrémentale (le curseur se déplace quand vous complétez votre critère de recherche) ;En plus, en mode normal,
n
(next) permet de chercher l’occurrence suivante,N
amène sur la précédente.Le critère de recherche peut être une expression régulière. C’est un autre sujet.