Lancement
$ vim [file1.ext] [file1.ext] ... : nom de fichier optionnel, mais plus simple.
Ouverture de plusieurs fichiers en simultané.
$ vim [+n] [file.ext] : ouverture à la ligne n
$ vim -r : recovery si fichier tmp présent
$ vim -R : read-only
Navigation entre les fichers
n | N
Passage en mode édition
Append
a : après le curseur
A : en fin de ligne
Insert
i : avant le curseur
I : en debut de ligne
Open
o : créer une ligne après la ligne en cours
O : open – créer une ligne avant la ligne en cours
Passage en mode commandes depuis le mode édition : Echap
:q : quitter
:q! : forcer à quitter
:w [file.ext] : write – sauvegarder dans file.ext si précisé sinon dans le fichier en cours
:wq ou :x : sauvegarde et quitte
:%s/word1/word2/g : remplace word1 par word2 dans tout le fichier :
% : de la 1re ligne à EOF
s : subtitute
/ : recherche dans la ligne
/g : plusieurs fois si besoin
\<foo : tous les mots débutants par foo
foo\> : tous les mots terminants par foo
\<foo\>: exactement le mot foo
:set : liste les variables d’environnement
:set nu : affiche les numéros de ligne
:set nonu : retire les numéros de ligne
:set cindent : indentation de type C
:set autoindent : installer indent au préalable (apt install indent)
1G=G : réindente tout le buffer en cours
== : réindente la ligne en cours
:!ls : exécute la commande bash ls
K : ouvre le man du mot sous le curseur
/word : recherche avant de word
?word : recherche arrière de word
n | N : effectue à nouveau la recherche | dans le sens opposé
Déplacement du curseur
h | j | k | l : gauche | bas | haut | droite
w | W : déplacement d’un mot vers EOF | déplacement d’un mot avec espace, \t ou \n comme séparateurs
b | B : backward
e | E : end – curseur à la fin du mot | bloc en cours
ctrl + f | ctrl + b : forward | backward – déplacement d’un demi écran
ctrl +e | ctrl + y : scroll up | scroll down
^ | $ : début | fin de ligne
Copier / couper / coller
dd : delete – efface la ligne en cours
cc : change – efface la ligne en cours + passage en mode édition
yy : yield – copie la ligne en cours
p | P : paste – colle après | avant le curseur
dw | dW : efface du curseur à la fin du mot | bloc en cours
db | dB : efface du curseur au début du mot | bloc en cours
x | X : efface le caractère en cours | avant le caractère en cours
xp | Xp : coupe/colle 1 caractère == inversion de 2 caractères
cx : efface le caractère en cours et insertion
D : efface du curseur à la fin de la ligne
r : remplace le caractère en cours
J : join – joindre la ligne en cours et la suivante
Divers
. : répète la commande précédente
u : undo
~ : change la casse d’un caractère et avance
% : se déplace de part et d’autre de ( ) [ ] { }
