Tux

Le système UNIX

TD 8 - L'éditeur VI

C. Drocourt
I.U.T. Amiens
drocourt@iut-amiens.fr

Description

vi est un éditeur standard pleine page, rudimentaire mais largement répandu sous UNIX.

vi propose deux modes de fonctionnement principaux :
– Le mode éditeur. Dans ce mode, le clavier fonctionne comme une machine à écrire.
– Le mode commande (mode par défaut). Dans ce mode, chaque touche démarre une instruction (ex: sauvegarde, effacement de lignes ou de caractères, quitter) et, en général, celles-ci n'ont pas à être terminées par la frappe de la touche <RETURN>.

A son lancement, vi est en mode commande, et attend l'entrée de l'une d'elles. Ces commandes permettent :
– de se déplacer dans le fichier,
– d'en éditer des parties,
– d'entrer dans le mode texte afin d'insérer du texte (ou en supprimer),
– de sortir de vi avec ou sans enregistrement de fichier,
– de rechercher des motifs.

La touche d'échappement <echap> permet de passer en mode commande.

Déplacements :
Commande
Action
w
déplacement d'un mot vers la droite
b
déplacement d'un mot vers la gauche
$
déplacement à la fin de la ligne courante
0
déplacement au premier caractère de la ligne courante
NG
positionne le curseur sur la nième ligne
H
positionne le curseur en Haut de l’écran
M
positionne le curseur au milieu de l’écran
L
positionne le curseur en bas de l’écran
<CTRL>f avance d'un écran
<CTRL>b retour d'un écran
G
aller à la fin du buffer
<CTRL>d scrolling d’une demi page vers le bas
<CTRL>u scrolling d’une demi page vers le haut
:n
aller à la nième ligne
<CTRL>g affiche le numéro de la ligne courante
<CTRL>l retrace l'écran

Sortir de vi :
Commande Action
ZZ Sauvegarde le fichier et retour au shell
:x Sauvegarde le fichier et retour au shell
:wq Sauvegarde le fichier et retour au shell
:w Sauvegarde le fichier
:w filename Sauvegarde le buffer dans le fichier filename
:q retour au shell
:q! retour au shell sans sauver le fichier
Q
sortie du mode commande vi et entrée du mode commande ex
:e filename édition du fichier filename sans quitter vi

Insérer du texte :
Commande Action
i
Insertion avant la position courante du curseur
a
Insertion après la position courante du curseur
I
Insertion en début de ligne
A Insertion en fin de ligne

Supprimer du texte :
Commande
Action
x
effacement du caractère sous le curseur
dw
effacement du mot sous le curseur
D
effacement depuis le curseur jusqu'à la fin de ligne
dd
effacement de la ligne courante



Remarque : Si on précède une commande d'effacement par un nombre, la commande est répétée autant de fois. Par exemple, "7dd" détruit les 7 lignes à partir de la ligne courante.

Copier/coller :
Commande
Action
yw
copie (sans effacer) le mot sous le curseur
yy
copie (sans effacer) la ligne courante
p
insère (colle) le buffer de copie après le curseur
P
insère (colle) le buffer de copie avant le curseur



Autres commandes utiles :
Commande Action
:set
affiche les options en cours demandé par l'utilisateur
:set all
affiche toutes les options en cours (défaut et demandées)
:set number / :set nu affiche les numéros de lignes
:set showmode
affiche un message qui indique le type d'insertion en cours
!commande
exécute la commande shell indiquée
:r newfile
lit (insère) le contenu du fichier indiqué dans le fichier courant
:r !commande
insère le résultat de la commande Unix indiquée dans le fichier courant