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 ( ) [ ] { }