Programmer avec VIM – VI (Quelques commandes utiles)

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