next up previous contents
suivant: Mode d'insertion monter: vi, éditeur pleine page précédent: Mode de déplacement   Table des matières

Mode de commande

Les commandes, qui doivent toutes être terminées par un RETURN et commencer par un :, sont très nombreuses. La plupart acceptent un argument numérique qui permet de répéter n fois l'opération (par exemple 5d détruit cinq lignes depuis la position courante). En voici un échantillon:

j
concaténation de lignes
d
destruction de lignes
x
sauver et quitter. Attention, cette commande est dangereuse car très similaire à une commande de chiffrement (celle-ci en majuscule). De plus, elle est parfois spécialement implémentée si on force la sortie avec le point d'exclamation (certaines versions ne sauvegardent pas dans ce cas). Il est recommandé d'utiliser plutôt la combinaison wq.
w
sauver
q
quitter
n
passer au fichier suivant si plusieurs fichiers
$
se déplacer à la fin du fichier
set ic
ignorer la casse en recherche. Annuler avec set noic
set nu
numéroter les lignes. Annuler avec set nonu

N'oubliez pas que dans le mode de commande, toute commande commence par : et finit par un RETURN.

Si l'éditeur refuse une opération (par exemple il refusera la commande q si le texte courant n'est pas sauvé), on peut forcer l'exécution par un point d'exclamation ajouté (par exemple q!). De plus, en tapant directement le numéro d'une ligne, on peut s'y déplacer. Cela est également possible d'ailleurs en lançant l'éditeur avec un argument commençant par + suivi d'un numéro de ligne.

Voici quelques exemples de commandes complexes (il faut toujours ajouter un : avant et un RETURN après). On notera que $ représente la dernière ligne et . la ligne courante dans les spécifications d'adresse de ligne.

1,$s/foo/bar/g
Remplace toutes les occurrences de foo par bar.
%s/foo/bar/g
Equivalent.
.,$s/foo/bar/g
Remplace toutes les occurrences de foo par bar, depuis la ligne courante.
3,7s%foo/bar%bar/foo%g
Remplace aux lignes 3 à 7 les occurrences de la sous-chaîne foo/bar par bar/foo. Cela montre que l'on peut utiliser un autre caractère séparateur que /.
1,$s/foo/bar/c
Remplace, après confirmation, chaque occurence de foo par bar: répondre par y pour oui et n pour non.
1,$s/CTRL-VCTRL-M//g
Supprimer les retours de ligne indésirables: conversion MS-DOS vers UNIX.

Notez que le remplacement est séparé par un caractère, ici /, mais qui peut être quelconque. Il faut également faire attention car certains caractères, notamment ., *, [ et ] ont des significations particulières, il faut les précéder du caractère d'échappement $\backslash$ (voir section regexp). Ce dernier doit être doublé s'il doit être utilisé tel quel. Voyez également la signification de CTRL-V qui permet d'entrer un caractère de contrôle.

Certaines opérations se font sans : ni RETURN, celles-ci sont donc exécutées en mode déplacement.

Noter que pour rechercher des chaînes, on doit utiliser la construction /chaîne puis RETURN, ceci sans : initial. Voyez l'état ic décrit plus haut.


next up previous contents
suivant: Mode d'insertion monter: vi, éditeur pleine page précédent: Mode de déplacement   Table des matières
Marc SCHAEFER 2003-03-01