Editeur VI

 

 

Pour le novice, le célèbre éditeur VI fonctionnant sous Linux et Unix reste un mystère quand il veut faire différents changements dans le document. Ainsi, les tableaux suivants récapitulent les différentes commandes (elles n'y sont pas toutes...).

Mode de commande (déplacement)

CTRL+G
Infos concernant le fichier, ainsi que la position actuelle dans ce fichier
i
enclenche le mode insertion
a
mode ajout/suppression
d puis d
destruction d'une ligne
x
destruction d'un caractère
$
se positionner à la fin de la ligne
D
détruire une ligne à partir du positionnement du curseur
&
répéter le changement précédent
CTRL+U
Monter d'une demi-page
CTRL+D
Descendre d'une demi-page
CTRL+B
Monter d'une page
CTRL+F
Descendre d'une page
CTRL+L
Rafraichissement de l'écran
0
Retour au début de la ligne
w
va au mot suivant
b
revient au mot d'avant
yw
Copie le mot
yy
copie la ligne
p
colle le contenu du buffer (après le curseur)
P
colle le contenu du buffer (avant le curseur)
.
répète la derniére opération
u
annule la dernière opération
U
annule toute les opérations faites sur la ligne
r
remplace le caractère
dw
efface le mot
cw
change le mot
C
change la ligne
/mot
recherche mot en descendant
?mot
recherche mot en montant
n
repète la recherche dans le même sens
N
repète la recherche dans le sens opposé

 

Mode dernière ligne

Pour accéder au mode commande, il est nécessaire de taper ":" et pour valider la commande, il faut taper sur "Entrée"

j
Concaténation de lignes
d
destruction de lignes
x
Sauver et quitter
w
Sauver
wq
Sauver et quitter
$
se déplacer à la fin du fichier
n
passer au fichier suivant si plusieurs fichiers
q
quitter
!
se rajoute à la fin de la commande pour forcer l'acceptation (ex: :wq! + Entrée)
f "nom_fichier"
change le nom du fichier courant
r "nom_fichier"
insère le fichier après la ligne courante
e
réedite le fichier
e!
réedite le tampon
e#
bascule d'un fichier à l'autre
e "nom_fichier"
édite le fichier "nom_fichier"
g/str/cmd
exécute la commande cmd sur les lignes qui contiennent str (:g/str/d pour effacer tous les str du fichier)
!cmd
exécute une commande shell
!!
relance la dernière commande shell
.=
donne le numéro de la ligne courante
m,nd
détruit les lignes m à n
set nu
numérote les lignes
set nonu
enlève la numérotation
set all
montre les paramètres actifs
set list
affiche les caractères invisibles
set showmode
affiche le mode en cours (insert mode, replace mode...)
set noic
ignorer la casse en recherche
set ic
Annuler le set noic
vi
relance le mode commande

Substitution dans le mode dernière ligne

La commande permettant la substitution est tellement modulable que je préfère l'expliquer à part :

ex de substitution : Je veux substituer tous les abc par xyz sur les 3 premières lignes en demandant la confirmation :

:1,3s/abc/xyz/c

Ainsi, on voit bien les lignes 1 à 3 où l'on veut substituer (s) abc par xyz, et le c pour demander la confirmation.