Outils pour utilisateurs

Outils du site


tuto:linux:vi

VI

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 :

  • la touche h permet de déplacer le curseur vers la gauche ;
  • la touche l permet de déplacer le curseur vers la droite ;
  • la touche j permet de déplacer le curseur vers le bas ;
  • la touche k permet de déplacer le curseur vers le haut.

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 touche i permet de passer en mode d’insertion (le texte saisi s’insère avant le caractère sur lequel le curseur est positionné) ;
  • la touche a permet de passer en mode d’ajout de caractères (le texte saisi s’insère après le caractère sur lequel le curseur est positionné) ;
  • la touche A permet de placer le curseur en fin de ligne et de passer en mode d’ajout de caractères ;
  • la touche o permet de créer une nouvelle ligne après la ligne où se trouve le curseur et de passer en mode d’édition sur cette nouvelle ligne ;
  • la touche O permet de créer une nouvelle ligne avant la ligne où se trouve le curseur et de passer en mode d’édition sur cette nouvelle ligne.

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é :

  • la commande x permet d’effacer le caractère situé sous le curseur ;
  • la commande dd permet d’effacer la ligne où se trouve le curseur ;
  • la commande dw permet d’effacer le mot où se trouve le curseur.

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 :

  • la commande :q permet de quitter vi. Si le fichier en cours d’édition a été modifié, vi refusera de se terminer sans l’enregistrer. Si l’on veut malgré tout sortir sans l’enregistrer, il faudra utiliser la commande :q! ;
  • la commande :w permet d’enregistrer le fichier courant. Pour enregistrer ce fichier et quitter vi, la commande :wq peut être utilisée ;
  • la commande :help sujet permet d’obtenir de l’aide sur le sujet « sujet » ;
  • la commande :!commande permet d’exécuter la commande du shell « commande ». Cela peut être pratique pour effectuer une opération dans le shell sans avoir à quitter vi. Cela dit, il sera sans doute plus efficace d’utiliser un autre terminal virtuel.

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.

tuto/linux/vi.txt · Dernière modification : 2009/03/15 11:31 de 127.0.0.1