Introduction
La présente documentation technique a pour objectif de préciser les commandes sous les systèmes d’exploitation Unix / Linux avec l’éditeur vi.
L’éditeur vi
Présentation de l’éditeur vi
vi est un éditeur de texte page. Pour fonctionner correctement, il lui faut connaître le type de terminal courant.
TERM
est le nom de la variable d’environnement contenant le type de
terminal :
Pour consulter la variable $TERM
:
% echo $TERM
Pour modifier la variable $TERM
:
% TERM=vt220
% export TERM
Pour appeler l’éditeur vi :
% vi <Nom_du_fichier>
Les deux modes de fonctionnement de l’éditeur vi
L’éditeur vi possède deux modes de fonctionnement :
- le mode insertion : tout ce qui est entré au clavier est écrit dans le tampon en mémoire associé au fichier
- le mode commande : tout ce qui est entré au clavier est interprété comme commande de l’éditeur
Pour passer d’un mode à l’autre :
- Touche i : mode commande => mode insertion
- Touche Esc : mode insertion => mode commande
Les commandes vi
L’éditeur vi dispose d’un certain nombre de variables d’état permettant de modifier son comportement. Il existe des variables booléennes et d’autres susceptibles de prendre différentes valeurs.
Les commandes de l’éditeur vi sont données dans le tableau qui suit.
Commandes générales | |
---|---|
:set all |
Visualiser l’ensemble des variables d’état de l’éditeur |
:set list |
Afficher les fins de lignes et les caractères de contrôle |
:set nu |
Afficher les numéros de ligne |
:set redraw |
Rafraîchir l’écran |
:f |
Référence du fichier en cours d’édition, numéro de ligne courante,… |
ZZ |
Quitter vi et sauvegarder le fichier sous le nom courant |
:w <ref> |
Sauvegarder un fichier <ref> sans quitter vi |
:wq |
Sauvegarder le fichier courant et quitter vi |
:q ! |
Quitter vi sans sauvegarder le fichier courant |
:e <ref> |
Charger un nouveau fichier |
:r <ref> |
Lire et insérer un fichier après la ligne courante |
:!<Commande Shell> |
Lancer une commande shell depuis l’éditeur |
:n,m w <ref> |
Sauver les lignes n à m du fichier courant dans un fichier |
:n,m w <ref> |
Sauver les lignes n à m du fichier courant dans un fichier |
Déplacements du curseur | Déplacement page à page | ||
---|---|---|---|
Touche h |
Déplacement à gauche | <CTRL> + f |
Une page en avant |
Touche l |
Déplacement à droite | <CTRL> + b |
Une page en arrière |
Touche k |
Déplacement en haut | <CTRL> + d |
Une demi page en avant |
Touche j |
Déplacement en bas | <CTRL> + u |
Une demi page en arrière |
* Flèches du clavier disponibles selon la plateforme |
Déplacement sur l’écran | Déplacement sur la ligne | ||
---|---|---|---|
H |
Home, haut de l’écran | w |
Mot suivant |
M |
Middle, milieu de l’écran | b |
Mot précédent |
L |
Last, dernière ligne de l’écran | e |
Fin du mot |
G |
Goto, dernière ligne du fichier | 0 |
Début de ligne |
nG |
Goto n ième ligne du fichier |
Mode insertion | Chaînes de caractères | ||
---|---|---|---|
i |
Insérer avant le curseur | /chaine |
Recherche en avant de chaine |
a |
Insérer après le curseur | n |
Occurrence suivante de chaine |
A |
Insérer en fin de ligne | N |
Occurrence précédente de chaine |
r |
Remplacer le caractère courant | :1,$s/o1/n2/g |
Remplacement de la ligne 1 à la fin
du fichier ($ ) de 'o1 ' par 'n2 ' |
o |
Ajouter une ligne sous le curseur | ||
O |
Ajouter une ligne au dessus du curseur | ||
cw |
Changer un mot | ||
u |
Annuler la dernière commande |
Copie de texte | Effacer | ||
---|---|---|---|
Y |
Copier une ligne vers le buffer | x |
Effacer un caractère |
nY |
Copier n lignes | dw |
Effacer un mot |
p |
Placer le contenu du buffer sur la ligne suivante | dd |
Effacer une ligne |
P | Placer le contenu du buffer avant le curseur | ndd |
Effacer n lignes |
:g/char/d |
Effacer les lignes contenant 'char ' |