3.4. L'éditeur vi

Les éditeurs de texte continuent à être utilisés pour de nombreuses tâches d'administration système, ainsi que pour la programmation. Dans le monde Unix, vi représente un éditeur qui offre des fonctions d'édition pratiques. Il est plus ergonomique que la plupart des autres éditeurs prenant en charge la souris.

3.4.1. Modes de fonctionnement

[Note]Affichage des touches

Dans ce qui suit, vous trouverez plusieurs commandes que vous pouvez entrer dans vi en appuyant simplement sur des touches. Elles apparaissent en majuscules comme sur un clavier. Si vous devez entrer une touche en majuscules, ceci est indiqué de façon explicite par l'affichage d'une combinaison de touches qui comprend la touche Shift.

Fondamentalement, vi utilise trois modes de fonctionnement : le mode insertion, le mode commande et le mode étendu. Les touches ont différentes fonctions selon le mode utilisé. Au démarrage, vi est normalement défini en mode commande. Vous devez commencer par apprendre comment passer d'un mode à l'autre :

Du mode commande au mode insertion

Il existe de nombreuses possibilités, notamment la touche A pour ajouter, I pour insérer ou O pour créer une nouvelle ligne après la ligne actuelle.

Du mode insertion au mode commande

Appuyez sur Echap pour quitter le mode insertion. Il n'est pas possible d'arrêter vi en mode insertion : il est donc important de prendre l'habitude d'appuyer sur Échap.

Du mode commande au mode étendu

Vous pouvez activer le mode étendu de vi en entrant deux points (:). Le mode étendu ou ex (pour « extended » - étendu) est comparable à un éditeur orienté ligne indépendant qui permet d'effectuer différentes tâches, des plus simples au plus complexes.

Du mode étendu au mode commande

Après avoir exécuté une commande en mode étendu, l'éditeur repasse automatiquement en mode commande. Si vous décidez de ne pas exécuter une commande en mode étendu, supprimez les deux points à l'aide de la touche <—. L'éditeur repasse en mode commande.

Il n'est pas possible de passer directement du mode insertion au mode étendu sans d'abord passer par le mode commande.

Le programme vi, comme d'autres éditeurs, a sa propre procédure d'arrêt. Vous ne pouvez pas arrêter vi lorsqu'il est en mode insertion. Quittez d'abord le mode insertion en appuyant sur la touche Échap. Ensuite, vous avez deux options :

  1. Quitter sans enregistrer : pour quitter l'éditeur sans enregistrer les modifications, entrez : Q ! en mode commande. Le point d'exclamation (!) indique à vi d'ignorer les modifications.

  2. Enregistrer et quitter : il existe plusieurs possibilités pour enregistrer vos modifications et arrêter l'éditeur. En mode commande, utilisez Shift-Z-Shift-Z. Pour quitter le programme en enregistrant toutes les modifications à l'aide du mode étendu, entrez : W Q. En mode étendu, w représente « write » (écrire) et q « quit » (quitter).

3.4.2. vi en action

vi peut être utilisé comme un éditeur normal. En mode insertion, entrez ou supprimez du texte à l'aide des touches <— et Suppr. Utilisez les touches fléchées pour déplacer le curseur.

Toutefois, ces touches de contrôle génèrent souvent des problèmes, car il existe de nombreux types de terminaux qui utilisent des codes de touche spéciaux. C'est là que le mode commande entre en jeu. Appuyez sur Échap pour passer du mode insertion au mode commande. En mode commande, déplacez le curseur à l'aide des touches H, J, K et L. Ces touches ont les fonctions suivantes :

H

se déplace d'un caractère vers la gauche

J

passe à la ligne suivante

K

remonte à la ligne précédente

L

se déplace d'un caractère vers la droite

Les commandes en mode commande permettent plusieurs changements. Pour exécuter une commande plusieurs fois, il vous suffit d'entrer devant elle le nombre de fois où elle sera répétée. Par exemple, entrez 5 L pour déplacer le curseur de cinq caractères vers la droite.

Pour obtenir une sélection des principales commandes, reportez-vous au Tableau 3.1, « Commandes simples de l'éditeur vi ». Cette liste est loin d'être exhaustive. Des listes plus complètes sont disponibles dans la documentation présentée à la Section 3.4.3, « Pour plus d'informations ».

Tableau 3.1. Commandes simples de l'éditeur vi

Échap

Passe en mode commande

I

Passe au mode insertion (les caractères apparaissent à la position courante du curseur)

A

Passe en mode insertion (les caractères sont insérés après la position actuelle du curseur)

Shift-A

Passe au mode insertion (les caractères sont ajoutés à la fin de la ligne)

Shift-R

Passe en mode remplacement (l'ancien texte est écrasé)

R

Remplace le caractère sous lequel se trouve le curseur

O

Passe au mode insertion (une nouvelle ligne est insérée après la ligne courante)

Shift-O

Passe au mode insertion (une nouvelle ligne est insérée avant la ligne courante)

X

Supprime le caractère actuel

D D

Supprime la ligne actuelle

D W

Supprime le mot courant jusqu'à la fin

C W

Passe au mode insertion (le reste du mot courant est écrasé par les entrées suivantes)

U

Annule la dernière commande

Ctrl-R

Ré-applique la modification qui a été annulée

Shift-J

Rejoint la ligne suivante et la ligne actuelle

.

Répète la dernière commande

3.4.3. Pour plus d'informations

vi prend en charge une vaste gamme de commandes. Il permet d'utiliser des macros, des raccourcis, des mémoires tampons nommées, ainsi que de nombreuses autres fonctions pratiques. Une description détaillée de ces différentes options dépasserait le cadre de ce manuel. SUSE Linux est fourni avec vim (pour « vi improved »), une version améliorée de vi. Il existe de nombreuses sources d'informations pour cette application :

[Important]Licence VIM

vim est un « caritaticiel » (« charityware » en anglais) : leurs auteurs ne font rien payer pour ce logiciel, mais vous demandent en contre-partie de faire un don financier pour un projet à but non lucratif. Ce projet fait appel à votre solidarité pour les enfants pauvres en Ouganda. Pour plus d'informations, connectez-vous aux sites http://iccf-holland.org/index.html, http://www.vim.org/iccf/ et http://www.iccf.nl/.