vi

Cet article est en court d'écriture, repassez dans quelques jours et ce sera prêt :)

Vi est un éditeur de texte en ligne de commande. Que vous aimiez vi ou non ne se pose même pas, car cette éditeur est tellement répandu (Linux, BSD, Solaris, Mac OS X, certains routeurs, etc) qu'il faut prendre le temps de l'apprendre..

On ne peut parler de vi sans parler de vim alors faisons le tout de suite. Vim est un vi extrêmement amélioré, et il est compatible avec vi (même commandes). Donc quand vous voulez lancez vi, commencez par taper vim et si il n'est pas disponible, lancez vi.

Les modes

L'édition avec vi utilise des mode de travail. Il y a le mode normal qui est le mode où on peut entrer des commandes (et qui est le mode par défaut). Un autre mode important et le mode d'insertion dans lequel on édite le texte.

Notez un point important, le mode par défaut est le mode de travail, les touches que vous tapez au clavier ne modifie donc pas le fichier texte! Pour modifier le fichier texte, il faut passer au mode d'insertion en appuyant sur la lettre i. Quand les modifications sont finies, il faut appuyer sur la touche ESCAPE (ESC, ECHAP) pour revenir en mode normal et pouvoir entrer des commandes (comme la commande de sauvegarde (:w).

Cette histoire de mode de fonctionnement peut être perturbante au début, et il faut retenir les commandes. C'est pourquoi je vous invites à essayer vi directement, et à l'utiliser régulièrement pour retenir les commandes importantes. Si vous débuter avec vi, je vous suggère également la commande vimtutor pour faire un tutoriel interactif avec vim.

Lancer - éditer - sauver - quitter

Si vous avez compris les modes, voyons une session d'utilisation de vi. En réalité, je vais utiliser vim pour que le mode d'insertion soit affiché, mais les commandes sont les mêmes que pour vi.

Je veux éditer le fichier /etc/hosts pour ajouter un nom correspondant à une IP. Je lance vim suivit du nom de fichier:

$ vim /etc/hosts

Au lancement de la commande, l'interpréteur shell disparait et le fichier est affiché. Voici une copie de ce qui est affiché sur mon shell:

127.0.0.1       localhost
192.168.66.2    torpille

                                                     1,1           Top

Le fichier texte prend l'entièreté de l'écran (que j'ai ici réduit à 3 lignes) et la dernière ligne affiche des informations supplémentaire de vi. Lorsque l'on tape des commandes, elle viennent sur cette dernière ligne. Si je veux quiter, je peux entrer :q (voyez que la commande s'affiche sur la dernière ligne) suivit de enter et je me retrouve à nouveau dans le shell:

127.0.0.1       localhost
192.168.66.2    torpille

:wq

Vous avez compris l'idée, passons à l'édition du fichier. Pour éditer le fichier, il faut entrer dans le mode d'insertion. Tapez la touche i pour entrer dans ce mode. Voyez que la dernière ligne change pour afficher le mode:

127.0.0.1       localhost
192.168.66.2    torpille

-- INSERT --                                          1,1           Top

Là, je peux me déplacer dans le fichier, mais surtout je peux changer le texte. Quand les modifications sont finie, j'appuie sur ESCAPE pour quitter le mode d'insertion.

Il faut maintenant sauver le fichier. La commande :w permet de faire ceci. Une autre commande utile est :wq qui permet de sauver et quitter.

127.0.0.1       localhost gate
192.168.66.2    torpille

:wq           

Commandes importantes

Voyons les commandes les plus utiles de vim.

commande signification
:w Sauver
:wq Sauver et quiter
:q! Quitte sans sauver les modifications
dd Supprime la ligne courante
7dd Supprime les 7 lignes en dessous du curseur.
p Colle les dernières lignes supprimées avec dd ou copiée avec yy
yy Copie la ligne courante (commande p pour coller). Attention que la ligne est collé en dessous de la ligne courante.
/Linux Rechercher le mot "Linux" dans le texte. La touche "n" permet ensuite de passer à l'occurrence suivante.
:32 Positionne le curseur à la ligne 32
u annuler la dernière action
Ctrl + R refaire la dernière action annulé

Page de manuel

La page de manuel de vi est particulièrement peu utile puisqu'elle décrit les options, mais pas les modes, les commades interne etc.

Pour apprendre vi, lancez plutôt vimtutor. C'est un petit tutoriel qui présente les fonctionnalités de base de vim.

Si vous êtes coincé dans vi à la recherche d'une commande, allez en mode commande et tapez :help.