5.8. vi, l'éditeur de fichiers de base

Vous serez obligé, lorsque vous effectuerez la configuration de votre système, d'éditer les fichiers de configuration (classiquement, ces fichiers sont placés dans le répertoire /etc/). Ces modifications peuvent être réalisées avec n'importe quel éditeur a priori, et il est même conseillé d'utiliser votre éditeur favori. Cependant, il faut savoir se servir de vi, parce que c'est le seul éditeur qui sera toujours installé, et qui fonctionnera en toutes circonstances. Le prix à payer pour cette fiabilité est un nombre restreint de fonctionnalités. En fait, vi est très puissant, mais il ne s'embarrasse pas de superflu, ce qui en fait certainement l'éditeur le moins convivial du monde. Ce paragraphe vous donnera la liste des principales commandes de vi. Cette liste ne sera toutefois pas exhaustive, car vous n'utiliserez certainement pas vi dans la vie courante.

Pour éditer un fichier avec vi, il suffit de passer le nom de ce fichier en ligne de commande :

vi fichier

Il est possible de passer plusieurs fichiers dans la ligne de commande, et vi les éditera les uns après les autres. Cependant, il faut savoir que vi ne permet de travailler que sur deux fichiers à la fois, et qu'il n'est pas facile de passer de l'un à l'autre. Par conséquent, il est conseillé de n'éditer qu'un seul fichier à la fois.

vi est un éditeur qui fonctionne dans plusieurs modes différents : le mode d'édition, dans lequel le texte peut être modifié, le mode de commande, dans lequel des commandes particulières peuvent être données, et le mode de visualisation, dans lequel le fichier ne peut être que visualisé. Par défaut, vi est en mode de visualisation, et il faut utiliser une commande d'édition pour passer en mode d'édition. Quand on est en mode d'édition, on peut revenir au mode de visualisation en appuyant sur la touche Echap (ou Esc, selon votre clavier). Cette touche a aussi une signification dans le mode de commande : elle annule la saisie de la commande en cours. Par conséquent, lorsqu'on est perdu et que l'on ne sait plus dans quel mode on se trouve (ce qui arrive fatalement à un moment donné), il suffit d'appuyer sur cette touche. On sait alors qu'on se trouve en mode de visualisation.

Le déplacement du curseur en mode de visualisation se fait avec les touches du curseur. Cependant, si votre clavier n'est pas bien configuré, ces touches peuvent ne pas fonctionner. C'est pour cette raison que vi fournit un jeu de touches alternatif :

Le curseur est bien entendu déplacé automatiquement lors de la saisie du texte en mode d'édition.

Le passage en mode d'édition peut se faire avec l'une des commandes suivantes :

La création d'une nouvelle ligne peut donc être faite avec les commandes o et O, mais il est possible de couper une ligne en deux, ou de passer à la ligne simplement en tapant sur la touche Entrée en mode d'édition. Inversement, la commande J permet de supprimer un saut de ligne en fin de ligne et de placer ainsi le texte de la ligne suivante à la suite du texte de la ligne courante.

La suppression d'un caractère se fait avec la touche Suppr (ou Del, selon le clavier) ou la touche de retour arrière (dite touche Backspace). Cependant, encore une fois, vi fournit un jeu de touches alternatif permettant de travailler avec un clavier mal configuré :

Le texte qui a été supprimé est placé dans ce que l'on appelle un buffer. Le contenu du buffer peut être inséré à n'importe quel endroit du fichier grâce à la commande p. Ainsi, il est possible de faire un couper/coller en effaçant la ligne désirée et en appuyant sur la touche p à l'emplacement destination.

La commande u permet d'annuler la dernière opération effectuée, et la commande U permet de la ré-exécuter.

La commande yy permet de copier la ligne courante dans le buffer. Cette commande est donc utilisée pour effectuer des copier/coller, en combinaison avec la commande p.

Les commandes de vi peuvent être répétées un certain nombre de fois, en spécifiant ce nombre avant de les écrire. Ainsi, pour supprimer 3 lignes, il suffira de taper la commande suivante :

3dd

Dans ce cas, ces trois lignes sont également placées dans le buffer. La même technique peut être utilisée pour copier/coller plusieurs lignes en une seule opération.

Enfin, vi accepte un certain nombre de commandes générales lorsqu'il est en mode de commande. Ce mode est activé dès que l'on appuie sur la touche deux points (':') dans le mode de visualisation. Les commandes générales les plus utiles sont décrites ci-dessous :

Comme vous l'avez constaté, vi est réellement une horreur à utiliser. Malgré tout, il permet de faire tout ce dont on a besoin pour éditer un fichier. Il dispose même de puissantes fonctionnalités que même les traitements de texte évolués ne sont pas capables de faire. Elles ne seront cependant pas décrites ici, car cela dépasserait le cadre de la simple installation de Linux. Vous pourrez toujours consulter l'aide de vi pour de plus amples informations.