RÉFÉRENCE RAPIDE VIM
Modes, navigation, édition, recherche, macros, tampons
Modes
Changer de mode
| i | Mode insertion (avant le curseur) |
| a | Mode insertion (après le curseur) |
| o | Insérer une ligne en dessous et passer en insertion |
| O | Insérer une ligne au-dessus et passer en insertion |
| v | Mode visuel (caractère) |
| V | Mode visuel (ligne) |
| Ctrl+v | Mode visuel bloc |
| : | Mode ligne de commande |
| R | Mode remplacement |
| Esc | Retour au mode normal |
Navigation
Déplacement caractère & ligne
| h j k l | Gauche, bas, haut, droite |
| 0 / ^ | Début de ligne / premier caractère non vide |
| $ | Fin de ligne |
| w / W | Mot suivant / MOT |
| b / B | Mot précédent / MOT |
| e / E | Fin du mot / MOT |
| f{c} / F{c} | Trouver un caractère en avant / en arrière |
| t{c} / T{c} | Jusqu'au caractère en avant / en arrière |
Déplacement écran & fichier
| gg / G | Aller à la première / dernière ligne |
| :{n} | Aller à la ligne n |
| Ctrl+d / Ctrl+u | Demi-page vers le bas / haut |
| Ctrl+f / Ctrl+b | Page entière vers le bas / haut |
| H / M / L | Haut / milieu / bas de l'écran |
| % | Sauter à la parenthèse correspondante |
Édition
Insérer & Ajouter
| I | Insérer au début de la ligne |
| A | Ajouter à la fin de la ligne |
| ea | Ajouter à la fin du mot |
| gi | Insérer à la dernière position d'insertion |
Supprimer & Modifier
| x / X | Supprimer le caractère sous / avant le curseur |
| dd | Supprimer la ligne |
| dw | Supprimer le mot |
| d$ / D | Supprimer jusqu'à la fin de ligne |
| cc / S | Modifier la ligne entière |
| cw | Modifier le mot |
| c$ / C | Modifier jusqu'à la fin de ligne |
| ci" / ci( | Modifier le contenu des guillemets / parenthèses |
Copier & Coller
| yy | Copier (yank) la ligne |
| yw | Copier le mot |
| y$ | Copier jusqu'à la fin de ligne |
| p / P | Coller après / avant le curseur |
| J | Joindre la ligne suivante à la ligne courante |
Annuler & Répéter
| u | Annuler |
| Ctrl+r | Rétablir |
| . | Répéter la dernière commande |
Rechercher & Remplacer
Recherche
| /pattern | Rechercher en avant |
| ?pattern | Rechercher en arrière |
| n / N | Correspondance suivante / précédente |
| * | Rechercher le mot sous le curseur (en avant) |
| # | Rechercher le mot sous le curseur (en arrière) |
Substitution
:s/old/new/ " replace first on line
:s/old/new/g " replace all on line
:%s/old/new/g " replace all in file
:%s/old/new/gc " replace all, confirm each
Mode visuel
Sélection
| v | Démarrer une sélection caractère |
| V | Démarrer une sélection ligne |
| Ctrl+v | Démarrer une sélection bloc |
| o | Se déplacer à l'autre extrémité de la sélection |
| gv | Resélectionner la dernière sélection visuelle |
Actions sur la sélection
| d | Supprimer la sélection |
| y | Copier la sélection |
| c | Modifier la sélection |
| > | Indenter la sélection |
| < | Désindenter la sélection |
| ~ | Basculer la casse |
| U / u | Mettre en MAJUSCULES / minuscules la sélection |
Tampons & Fenêtres
Tampons
| :ls | Lister les tampons ouverts |
| :bn / :bp | Tampon suivant / précédent |
| :b{n} | Aller au tampon n |
| :bd | Fermer le tampon courant |
| :e file | Ouvrir un fichier dans un nouveau tampon |
Fenêtres
| :sp file | Division horizontale |
| :vsp file | Division verticale |
| Ctrl+w h/j/k/l | Naviguer vers une fenêtre |
| Ctrl+w = | Égaliser les tailles des fenêtres |
| Ctrl+w q | Fermer la fenêtre |
Onglets
| :tabnew file | Ouvrir un fichier dans un nouvel onglet |
| gt / gT | Onglet suivant / précédent |
| :tabclose | Fermer l'onglet courant |
Registres
Utiliser les registres
| "ay | Copier dans le registre a |
| "ap | Coller depuis le registre a |
| "Ay | Ajouter à la copie dans le registre a |
| :reg | Afficher tous les registres |
Registres spéciaux
| "" | Sans nom (dernier supprimé/copié) |
| "0 | Dernière copie |
| "+ | Presse-papiers système |
| "/" | Dernier motif de recherche |
| ". | Dernier texte inséré |
| "_ | Trou noir (ignorer) |
Macros
Enregistrer & Lire
| q{a} | Démarrer l'enregistrement d'une macro dans le registre a |
| q | Arrêter l'enregistrement |
| @{a} | Lire la macro du registre a |
| @@ | Rejouer la dernière macro |
| 5@a | Lire la macro a 5 fois |
Exemple de macro
qa " start recording into a
I// " insert // at line start
Esc j " return to normal, move down
q " stop recording
10@a " comment next 10 lines
Paramètres
Options courantes
:set number " show line numbers
:set relativenumber " relative line numbers
:set tabstop=4 " tab width
:set expandtab " spaces instead of tabs
:set ignorecase " case-insensitive search
Affichage & Comportement
:set wrap / nowrap " toggle line wrapping
:set hlsearch " highlight search matches
:set incsearch " incremental search
:set cursorline " highlight current line
:syntax on " enable syntax highlighting
Opérations sur les fichiers
Enregistrer & Quitter
| :w | Enregistrer |
| :w file | Enregistrer sous |
| :q | Quitter (échoue si non sauvegardé) |
| :q! | Quitter sans enregistrer |
| :wq / :x / ZZ | Enregistrer et quitter |
| :wa | Enregistrer tous les tampons |
| :qa | Quitter tous les tampons |
Infos fichier & Commandes externes
| Ctrl+g | Afficher les infos du fichier |
| :!cmd | Exécuter une commande shell |
| :r !cmd | Insérer la sortie d'une commande |
| :r file | Insérer le contenu d'un fichier |
Objets texte
Objets intérieurs & Environnants
| iw / aw | Intérieur / autour du mot |
| is / as | Intérieur / autour de la phrase |
| ip / ap | Intérieur / autour du paragraphe |
| i" / a" | Intérieur / autour des guillemets doubles |
| i' / a' | Intérieur / autour des guillemets simples |
| i( / a( | Intérieur / autour des parenthèses |
| i{ / a{ | Intérieur / autour des accolades |
| it / at | Intérieur / autour d'une balise HTML |
Combinaisons courantes
ciw " change inner word
di" " delete inside quotes
ya{ " yank around braces
vip " select inner paragraph
Marques & Sauts
Marques
| m{a} | Poser la marque a à la position du curseur |
| 'a | Sauter à la ligne de la marque a |
| `a | Sauter à la position exacte de la marque a |
| :marks | Lister toutes les marques |
Liste des sauts
| Ctrl+o | Sauter à la position précédente |
| Ctrl+i | Sauter à la position suivante |
| :jumps | Afficher la liste des sauts |
| '' | Sauter à la dernière position de saut |