The manual Page
English version
accueil | glossaire | downloads | liens ]
 

Vi

Qu'est-ce que c'est ?

Pour beaucoup, vi [vi-aille] est un mot qui fait peur. vi est en fait une éditeur de texte fourni en standard avec tous les systèmes Unix. S'il fait peur, c'est parce qu'il est loin d'être convivial, mais c'est certainement de loin l'éditeur de texte le plus puissant.

Pour exéter vi, il suffit de taper vi, éventuellement suivi du nom du fichier à cré ou éditer. Il existe quelques options mais généralement, on utilise vi tel quel.

Utilisation, principe

Ce qui fait de vi sa particularité, c'est la façon de l'utiliser. Il n'y a pas de menu ou quoi que ce soit, l'interaction se fait souvent en aveugle. vi utilise en fait deux modes pour fonctionner : un mode insertion (ou mode "insert") pour taper du texte, et un mode "normal" où on tape les commandes vi par exemple pour enregistrer un ficher... Le mode insert se repère par "-- INSERT --" marqué en bas de l'écran. Lorsqu'il ce n'est pas marqué "-- INSERT --" en bas de l'écran, c'est que vi est en mode commande.

Les deux touches les plus utiles avec vi sont 'Echap' et 'i' : on utilise Echap pour quitter le mode insert ou pour annuler une action en cours (ce n'est pas rare de taper sur Echap 3/4 fois de suite pour être bien sûr qu'on est en mode commande), et on utilise i pour basculer en mode insert.

L'utilisation de vi n'est plus finalement que comprendre et connaître les commandes. Tout ceci se fait hors mode insert. La base de vi, c'est savoir basculer d'un mode à l'autre.

Les commandes utiles

Ces commandes sont à exécuter hors du mode insert. Pour sortir du mode insert, taper (plusieurs fois ?) sur la touche Escape. Dans tous les cas, si vous ne savez plus où vous en êtes, n'hésitez pas à taper plusieurs fois sur la touche Escape pour annuler les dernières commandes et revenir au mode normal.

Beaucoup de commandes sont courtes (une touche ou CTRL-touche par exemple) et dans ce cas, les touches suffisent. En revanche, certaines commandes sont longues (comme lorsque l'on enregistre un fichier, il faut donner le nom), il faut taper ":" avant de continuer. Dans ce dernier cas, la commande apparaît en bas de l'écran.

Commandes de base

commande description
i passe en mode insert
Echap passe en mode normal
:w nom_fichier enregistre le texte en cours dans nom_fichier. Peut servir à renommer un fichier. Si non spécifié, enregistre le fichier ouvert avec vi nom_fichier
:q quitte vi
:q! quitter vi sans enregistrer les modifications
:wq ou :x quitte vi et enregistre les changements
u annule la dernière action (undo)

Se déplacer

La version Linux de vi permet de se déplacer dans le document en utilisant les touches standards (les fèches, Home, End...). Cependant, sur beaucoup de systèmes, les déplacements se font en mode normal (penser à appuyer sur Echap avant) et avec les touches suivantes (également valable avec Linux) :

commande description
j haut
k bas
h gauche
l droite

Par ailleurs, d'autre touches permettent de se déplacer plus rapidement dans le texte, par exemple de mot en mot :

commande description
w début du mot suivant
b début du mot précédent
e fin du mot suivant
0 (zéro) début de la ligne courante
$ fin de la ligne courante
:N avec N un nombre va à la ligne N du fichier
:$ va à la dernière ligne du fichier

Il est possible de combiner les lettres w, b et e avec des nombres (à taper avant, comme par exemple 34w) pour se déplacer du nombre de mots choisis de la façon choisie.

Insertion/effacement de caractères

Ce tableau regroupe quelques touches utilisées pour insérer ou effacer du texte.

commande description
i passe en mode insert
o (o minuscule) insert une nouvelle ligne sous le curseur et passe en mode insert
O (o majuscule) insert une ligne au dessus du curseur et passe en mode insert
a passe en mode insert, mais pour insérer du texte après le caractère courant
x efface le caractère courant (placé sous le curseur)
dd efface la ligne courante
dNd avec N un nombre efface les N lignes suivantes (en commençant par la ligne courante)
D efface tout du curseur à la fin de la ligne courante
r suivi d'un caractère remplace le caractère placé sous le curseur
R remplace tous les caractères par le texte que l'on tape

Recherche

commande description
/mot recherche le mot "mot" dans le texte, à partir de la position actuelle du curseur
n cherche l'occurrence suivante du mot recherché en dessous du curseur
N cherche l'occurrence suivante du mot recherché au-dessus du curseur

Substitutions

vi comprend un certain nombre de commandes parsées comme des expressions régulières. La substitution "programmée" de caractères en fait partie. Pour mieux comprendre, supposons que l'on veuille remplacer le mot "foo" par "bar". La commande de base est la suivante :

:s/foo/bar

Ceci ne va changer que la première occurence de la ligne courante. Pour effectuer la substitution sur toute la ligne, on tape :

:s/foo/bar/g

Pour enfin effectuer la substitution sur l'ensemble du fichier, on tape :

:%s/foo/bar/g

Le % signifie juste "pour chaque ligne" ; il faut donc mettre un g à la fin pour forcer la substitution sur la totalité de la ligne.

Divers

Ce tableau présente quelques commandes utiles mais qui ne sont pas classables dans les catégories précédentes :

commande description
:se nu affiche le numéros de lignes
:set ff=unix ou set ff=dos Linux uniquement permet de changer le format des caractères de fin de ligne d'un texte (respectivement, permet de passer au format Unix ou au format DOS. Très utile lorsque l'on ouvre un fichier au format Dos et qu'on le veut en format Unix ou inversement.

format imprimable format imprimable



Copyright © 2000-2006 themanualpage.org - Ce site est soumis aux conditions décrites dans les licences GNU GPL et FDL.