Trucs et astuces Vi/Vim Linux

Ouverture

vi fichier
Ouvre le fichier

Sauvegarde

:w
Sauvegarde le fichier
: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
:n
Va à la ligne n

Positionnement du curseur

H
En haut de l'écran
M
Au milieu de l'écran
L
En bas de l'écran
h
Décale d'un caractère à gauche
j
Descend d'une ligne
k
Monte d'une ligne
l
Décale d'un caractère à droite
0
Au début de la ligne
$
A la fin de la ligne
w
Au début du mot suivant
e
A la fin du mot suivant
b
Recule d'un mot

Insertion d'un texte

i
Active l'insertion
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

x
Supprime un caractère
dw
Supprime un mot
dnw
Supprime n mots
dd
Supprime une ligne
dnd
Supprime n lignes

Copier/Coller

Y ou yy
Copie une ligne
nY ou yny
Copie n lignes
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
N
Recherche le précédent
: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

Régime Dukan | Forum Dukan | Hotspot Wifi | Audit, infogérance et développement | La Ferme des Glaces | Rencontres sérieuses | Internet pour les hôtels, Internet pour les bars | Bijoux aluminium