Trucs et astuces Vi/Vim Linux
Ouverture
vi fichier
Ouvre le fichier
Sauvegarde
:wq
Sauvegarde le fichier et quitte vi
:q
Quitte vi sans sauver les modifications
:e!
Ignore les changements et recharge le fichier
:q!
Force vi à se terminer sans enregistrer les modifications
:w! fichier
Remplace le fichier "fichier"
Déplacement
[ctrl] + f
Descend d'un écran
[ctrl] + b
Remonte d'un écran
[ctrl] + d
Descend d'1/2 écran
[ctrl] + u
Remonte d'1/2 écran
Positionnement du curseur
h
Décale d'un caractère à gauche
l
Décale d'un caractère à droite
w
Au début du mot suivant
e
A la fin du mot suivant
Insertion d'un texte
a
Active le mode insertion un caractère après le curseur
I
Insère au début de la ligne
A
Insère à la fin de la ligne
O
Insère une ligne en dessus du curseur et passe en mode insertion
o
Insère une ligne en dessous du curseur et passe en mode insertion
[esc]
Sort du mode insertion
Insertion et remplacement d'un texte
r*
Remplace le caractère à la position du curseur par * (rT, remplace par T, etc.)
R
Remplace tous les caractères jusqu'à la fin de la ligne ([esc] pour terminer)
cw
Remplace uniquement le mot à la position du curseur ([esc] pour terminer)
cnw
Remplace n mots ([esc] pour terminer)
C
Change le reste de la ligne ([esc] pour terminer)
Suppression d'un texte
Copier/Coller
P
Colle les lignes avant le curseur
p
Colle les lignes après le curseur
Copier/Coller du texte dans un autre fichier
ma
Marque la position "a" dans le fichier
mb
Marque la position "b" dans le fichier
:'a,'b fichier
Copie le texte de la position "a" à la position "b" dans le fichier "fichier"
Insertion du texte d'un autre fichier
:r fichier
Insère tout le contenu du fichier courant "fichier"
Rechercher/Remplacer du texte
/chaine
Recherche le texte "chaine" vers le bas
?chaine
Recherche le texte "chaine" vers le haut
n ou //
Recherche le suivant
:g/expr1/s//expr2/g
Recherche dans tous le fichier expr1 et la remplace par expr2
:g/expr1/s//expr2/gc
Idem avec demande de confirmation : y pour oui, a pour la ligne, q pour ignorer la ligne
:x,y s/expr1/expr2/g
Recherche dans tous le fichier expr1 et la remplace par expr2 de la ligne x à y
:s/expr1/expr2/g
Recherche et remplace expr1 par expr2 dans la ligne courante
Annuler/Répeter les modifications
u
Annule la dernière modification
U
Annule toutes les modifications effectuées sur la ligne courante
.
Répète les dernières modifications
Les sources
Utilisation de vi