Vim est un puissant outil d’édition de code en ligne de commande qui est une version améliorée du vénérable éditeur vi. Bien que la plupart des gens l’utilisent avec Linux, Vim est compatible avec la plupart des systèmes d’exploitation couramment utilisés, notamment macOS, Windows et DOS.
Sa puissance réside dans les dizaines d’opérateurs, commande et raccourcis clavier disponibles pour effectuer n’importe quelle action.
Mais ce qui peut faire la force et aussi une faiblesse, rendant vim déroutant, car il faut connaître une bonne partie de ces opérateurs.
Ainsi, dans cet article, je vous donne une liste des raccourcis clavier et des commandes Vim les plus couramment utilisés qui peuvent vous aider à démarrer avec Vim.

Table des matières
Les raccourcis clavier et commandes de vim
Si vous êtes novice en matière de Vim, vous pouvez consulter notre tutoriel pour apprendre vim : Apprendre vim : 7 bases à connaître
De plus, vous pouvez aussi ouvrir un terminal et exécutez vimtutor pour vous familiariser avec quelques commandes initiales avant de vous plonger dans le reste.
Les modes
Le mode normal est l’endroit où vous pouvez utiliser la plupart des raccourcis. En mode insertion, Vim se comporte comme un éditeur de texte normal.
En mode remplacement, les textes existants sont remplacés ou écrasés au fur et à mesure que vous tapez.
Le mode visuel nous permet de sélectionner visuellement des textes, puis d’y apporter des modifications.
i | Mode d’insertion au niveau du curseur |
I | Mode insertion en début de ligne |
a | Mode Insertion après le curseur |
A | Mode insertion en fin de ligne |
o | Mode Insertion avec une nouvelle ligne en dessous |
O | Mode Insertion avec une nouvelle ligne au-dessus |
s | Mode insertion au niveau du curseur, après suppression du caractère courant |
S | Mode insertion, après suppression de la ligne courante |
v | Mode visuel au curseur |
V | Mode visuel en début de ligne |
r | Remplacer le mode pour remplacer le caractère actuel |
R | Remplacer le mode |
Esc | Mode normal ou mode de commande |
Se déplacer dans vim
Voici la liste des commandes et raccourcis pour vous déplacer dans un texte dans vim.
k | Déplacez-vous d’une ligne vers le haut |
j | Déplacez-vous d’une ligne vers le bas |
h | Déplacez-vous d’une ligne vers la gauche |
l | Déplacez-vous d’une ligne vers la droite |
w | Aller au début du mot suivant (séparé par un espace/ponctuation) |
W | Aller au début du mot suivant séparé par un espace |
e | Aller à la fin du mot suivant séparé par des ponctuations/espaces |
E | Aller à la fin du mot suivant séparé par un espace |
b | Aller au début du mot précédent séparé par un signe de ponctuation/espace |
B | Aller au début du mot précédent séparé par un espace |
{ | Aller au saut de ligne précédent |
} | Aller au saut de ligne suivant |
% | Accédez au support correspondant |
# | Aller à l’occurrence précédente du mot courant sous le curseur |
* | Aller à la prochaine occurrence du mot courant sous le curseur |
^ | Aller au premier caractère non vide de la ligne |
0 | Aller au début de la ligne |
$ | Aller au bout de la ligne |
gg | Aller au début du fichier |
G | Aller à la fin du fichier |
gd | Aller à la définition |
:{number} | Allez au numéro de ligne. Remarque : Il ne s’agit pas vraiment d’un raccourci, mais d’une commande Vim |
Les raccourcis de mouvement peuvent être précédés d’un nombre pour répéter le mouvement. Par exemple, pour descendre de 5 lignes, nous pouvons utiliser 5j
. De même, pour avancer de 2 mots, on peut utiliser 2w
.
Chercher/remplacer
Vous pouvez rechercher un caractère dans la ligne actuelle en utilisant f
(find) et t
(till).
La différence entre “trouver” et “jusqu’à” est que “trouver” déplace le curseur vers le caractère recherché, tandis que “jusqu’à” déplace le curseur vers le caractère précédent du caractère recherché.
f | Trouver la prochaine occurrence d’un caractère dans la ligne courante et y accéder |
t | Trouver l’occurrence suivante d’un caractère dans la ligne courante et aller au caractère précédent |
F | Trouver l’occurrence précédente d’un caractère dans la ligne courante et y accéder |
T | Trouver l’occurrence précédente d’un caractère dans la ligne courante et aller au caractère suivant |
Pour rechercher une phrase, vous pouvez utiliser la commande Vim /
ou ?
/{ mot-chercher} | Rechercher un mot vers l’avant. Par exemple /export , recherchera et trouvera l’instance suivante du mot “exporter” |
?{ mot-chercher} | Rechercher un mot à l’envers. Par exemple /export , recherchera et trouvera l’instance précédente du mot “exporter” |
Après la recherche, n
et N
peuvent être utilisés pour rechercher respectivement les occurrences suivantes et précédentes.
n | Trouvez la prochaine occurrence. A utiliser après utilisation / ou ? |
N | Trouver l’occurrence précédente. A utiliser après utilisation / ou ? |
Supprimer du texte dans vim
Delete( d
) est un opérateur dans Vim. Les opérateurs ne peuvent pas fonctionner sans mouvement et d
sont donc toujours suivis d’un mouvement. Ici, le mouvement est ce qui indique à Vim ce qu’il faut supprimer.
Cela étant dit, vous pouvez combiner tous les mouvements avec d
, comme ça.
dw | Supprimer du caractère courant jusqu’à la fin d’un mot (espace/ponctuation/EOL) |
dW | Supprime du caractère courant jusqu’à la fin d’un mot (espace/EOL) |
db | Supprimer du caractère courant au début d’un mot (espace/ponctuation/EOL) |
dB | Supprime du caractère courant au début d’un mot (espace/EOL) |
diw | Supprimer le mot courant |
diW | Supprimer le mot courant |
dd | Supprimer la ligne courante |
di' | Supprimez tout ce qui se trouve entre les guillemets simples |
di" | Supprimez tout ce qui se trouve entre les guillemets |
di( | Supprimez tout entre parenthèses |
di{ | Supprimez tout ce qui se trouve entre les accolades |
di[ | Supprimez tout ce qui se trouve entre crochets |
x | Supprimer le caractère actuel sous le curseur |
X | Supprimer le caractère précédent |
Vous pouvez également répéter ces commandes en préfixant un nombre. Par exemple, vous pouvez supprimer 5 lignes avec 5dd
ou d4j
Modifier le texte dans vim
Dans vim, la modification est similaire à la suppression, la seule différence est qu’après la suppression, le mode d’insertion est activé.
cw | Supprimez du caractère actuel à la fin d’un mot (espace/ponctuation/EOL) puis passez en mode insertion |
cW | Supprimez du caractère actuel jusqu’à la fin d’un mot (espace/EOL) puis passez en mode insertion |
cb | Supprimez du caractère actuel au début d’un mot (espace/ponctuation/EOL) puis passez en mode insertion |
cc | Changer la ligne courante |
cB | Changer le bloc actuel |
ciw | Changer à l’intérieur d’un mot |
ciW | Changer à l’intérieur d’un mot |
ci' | Changez tout à l’intérieur d’une paire de guillemets simples |
ci" | Changez tout à l’intérieur d’une paire de guillemets doubles |
ci( | Changez tout à l’intérieur d’une paire de parenthèses |
ci{ | Changez tout à l’intérieur d’une paire d’accolades |
ci[ | Changez tout à l’intérieur d’une paire de crochets |
s | Supprimer le caractère actuel et passer en mode insertion |
S | Supprimer la ligne courante et passer en mode insertion |
Voici les commandes de basculements de texte :
~ | Basculer la casse à la position actuelle du curseur |
gUU | Mettre la ligne courante en majuscules |
guu | Mettre la ligne courante en minuscules |
5gUw | Passer les 5 premiers mots en majuscules |
gUap ou gU} | Mettre le paragraphe en majuscules |
Vous pouvez également utiliser gu
et gU
avec un mouvement. Par exemple, pour convertir 3 lignes en majuscules, vous pouvez utiliser gU3j
.
Indentation du texte
>> | Décale la ligne actuellement sélectionnée d’une longueur de tabulation vers la droite |
<< | Décale la ligne actuellement sélectionnée d’une longueur de tabulation vers la gauche |
g=G | Décaler le tampon courant d’une longueur de tabulation |
> % | Déplacez le bloc de code actuellement sélectionné vers la droite |
< % | Décale le bloc de code actuellement sélectionné vers la gauche |
>ib | Décale le contenu du bloc actuellement sélectionné vers la droite |
<ib | Décale le contenu du bloc actuellement sélectionné vers la gauche |
>À | Déplace le contenu d’un bloc entre crochets (<>) vers la droite |
<À | Déplacez le contenu d’un bloc entre crochets (<>) vers la gauche |
Copier (Copier) et Coller
yy | Copier la ligne courante |
yw | Copiez le mot actuel du curseur jusqu’à l’espace/ponctuation |
yW | Copiez le mot actuel du curseur jusqu’à l’espace |
yiw | Copiez le mot courant |
yiB | Copiez le bloc |
yi' | Copiez tout à l’intérieur d’une paire de guillemets simples |
yi" | Copiez tout à l’intérieur d’une paire de guillemets doubles |
yi( | Copiez tout à l’intérieur d’une paire de parenthèses |
yi{ | Copiez tout à l’intérieur d’une paire d’accolades |
yi[ | Copiez tout à l’intérieur d’une paire de crochets |
p | Coller sous la ligne actuelle |
P | Coller au-dessus de la ligne courante |
Manipulation de tampon
:sp [chemin du fichier] | Ouvrez le [chemin du fichier] en tant que tampon divisé horizontalement |
:vps [chemin du fichier] | Ouvrez le [chemin du fichier] en tant que tampon divisé verticalement |
:ls | Affiche une liste de tous les tampons actuellement ouverts dans Vim |
:bn | Affiche le contenu du prochain tampon ouvert dans la liste des tampons |
:bp | Affiche le contenu du tampon ouvert précédent dans la liste des tampons |
Ctrl + w, puis q | Divisez la fenêtre actuelle horizontalement, en affichant le tampon actuellement actif dans les deux fenêtres |
Ctrl + w, puis v | Divisez la fenêtre actuelle verticalement, en affichant le tampon actuellement actif dans les deux fenêtres |
Ctrl + w, puis w | Basculer le focus entre les tampons divisés |
Ctrl + w, puis x | Échangez la position du tampon actuellement focalisé avec un tampon inactif |
Ctrl + w, puis q | Supprimer le tampon actuellement sélectionné |
Annuler/Répéter des actions dans vim
u | Annuler la dernière action |
U | Refaire la dernière action |
:earlier 1m | Revenir à 1min dans l’historique du fichier |
:later 1m | Allez à 1min plus loin dans l’historique du fichier |
Ces commandes peuvent être répétées en préfixant un nombre. Par exemple, pour annuler les 3 dernières actions, vous pouvez utiliser 3u
.
. | Répète la dernière modification. |
Alias
Certaines commandes couramment utilisées ont des alias.
x = dl | Supprimer le caractère suivant |
C = c$ | Modifier jusqu’à la fin de la ligne |
D = d$ | Effacer jusqu’à la fin de la ligne |
Y = yy | Retourner la ligne |
S = cc | Changer la ligne |
A = $a | Ajouter du texte à la fin de la ligne |
s = cl | Caractère de substitution (suppression et insertion) |
S = cc | Remplacement de la ligne |
Autres commandes
help | Afficher l’aide de vim |
help vi_diff | Afficher les différences entre vim et vi |
vimtutor fr | Ouvre le tutoriel de vim en Français |