Global
- :h[elp] keyword - ouvrir l'aide pour le mot clé
- :sav[eas] file - sauvegarder un fichier sous
- :clo[se] - fermer le fichier en cours
- :ter[minal] - open a terminal window
- K - ouvre la page du manuel (man) du mot sous le curseur
Mouvement du curseur
- h - déplacer le curseur vers la gauche
- j - déplacer le curseur vers le bas
- k - déplacer le curseur vers le haut
- l - déplacer le curseur vers la droite
- gj - déplacer le curseur vers le bas (texte multi-lignes)
- gk - déplacer le curseur vers le haut (texte multi-lignes)
- H - aller en haut de l'écran
- M - aller au milieu de l'écran
- L - aller en bas de l'écran
- w - aller en avant au début d'un mot
- W - aller en avant au début d'un mot (les mots peuvent contenir de la ponctuation)
- e - aller en avant à la fin d'un mot
- E - aller en avant à la fin d'un mot (les mots peuvent contenir de la ponctuation)
- b - aller en arrière au début d'un mot
- B - aller en arrière au début d'un mot (les mots peuvent contenir de la ponctuation)
- ge - aller en arrière à la fin d'un mot
- gE - aller en arrière à la fin d'un mot (les mots peuvent contenir de la ponctuation)
-
% - aller au caractère associé (paires par défaut: '()', '{}', '[]' - utiliser
:h matchpairs
dans vim pour plus d'informations) - 0 - aller au début de la ligne
- ^ - aller au premier caractère non-espace de la ligne
- $ - aller à la fin de la ligne
- g_ - aller au dernier caractère non-espace de la ligne
- gg - aller à la première ligne du document
- G - aller à la dernière ligne du document
- 5gg or 5G - aller à la ligne 5
- gd - aller à la déclaration locale
- gD - aller à la déclaration globale
- fx - atteindre la prochaine occurence du caractère x
- tx - atteindre le caractère précédent la prochaine occurence du caractère x
- Fx - atteindre la précédente occurence du character x
- Tx - atteindre le caractère suivant la précédente occurence du caractère x
- ; - répéter le dernier f, t, F ou T
- , - répéter le dernier f, t, F ou T, dans l'autre sens
- } - atteindre le prochain paragraphe (ou function/bloc, en mode édition)
- { - atteindre le précédent paragraphe (ou function/bloc, en mode édition)
- zz - centre le curseur sur l'écran
- zt - position cursor on top of the screen
- zb - position cursor on bottom of the screen
- Ctrl + e - Descendre l'écran d'une ligne (sans déplacer le curseur)
- Ctrl + y - Monter l'écran d'une ligne (sans déplacer le curseur)
- Ctrl + b - Descendre d'une hauteur d'écran
- Ctrl + f - Monte d'une hauteur d'écran
- Ctrl + d - Monte d'une demie-hauteur d'écran
- Ctrl + u - Descendre d'une demie-hauteur d'écran
Mode insertion - insérer/ajouter du texte
- i - insérer avant le curseur
- I - insérer au début de la ligne
- a - insérer (ajouter) après le curseur
- A - insérer (ajouter) à la fin de la ligne
- o - ajouter (ouvrir) une nouvelle ligne vers le bas
- O - ajouter (ouvrir) une nouvelle ligne vers le haut
- ea - insérer (ajouter) a la fin d'un mot
- Ctrl + h - supprimer le caractère avant le curseur en mode insertion
- Ctrl + w - supprimer le mot avant le curseur en mode insertion
- Ctrl + j - commencer une nouvelle ligne en mode insertion
- Ctrl + t - indenter vers la droite la ligne en mode insertion
- Ctrl + d - désindenter vers la gauche la ligne en mode insertion
- Ctrl + n - insert (auto-complete) next match before the cursor during insert mode
- Ctrl + p - insert (auto-complete) previous match before the cursor during insert mode
- Ctrl + rx - insert the contents of register x
- Ctrl + ox - Entrez temporairement en mode normal pour émettre une commande de mode normal x.
- Esc or Ctrl + c - quitter le mode insertion
Éditer
- r - remplacer un caractère
- R - remplacer plus d'un caractère, jusqu'à ce que ESC soit pressé
- J - joindre la ligne suivante à la ligne en cours en ajoutant un espace
- gJ - joindre la ligne suivante à la ligne en cours sans ajouter d'espace
- gwip - reformater le paragraphe
- g~ - switch case up to motion
- gu - change to lowercase up to motion
- gU - change to uppercase up to motion
- cc - changer (remplacer) une ligne entière
- c$ or C - changer (remplacer) jusqu'à la fin d'une ligne
- ciw - changer (remplacer) un mot entier
- cw or ce - changer (remplacer) jusqu'à la fin d'un mot
- s - supprimer un caractère et le remplacer par du texte
- S - supprimer une ligne et la remplacer par du texte (comme cc)
- xp - transposer deux lettres (supprimer et coller)
- u - annuler
- U - restaure la dernière ligne modifié
- Ctrl + r - rétablir
- . - répéter la commande précédente
Marquer du texte (mode visuel)
- v - passer en mode visuel, marquer du texte, exécuter des commandes (comme y)
- V - passer en mode visuel ligne par ligne
- o - se déplacer à l'autre extrémité de la zone marquée
- Ctrl + v - passer en mode visuel par bloc
- O - se déplacer à l'autre angle du bloc
- aw - marquer un mot
- ab - marquer un bloc avec ()
- aB - marquer un bloc avec {}
- at - un bloc avec la balise <>
- ib - marquer par bloc le contenu de ()
- iB - marquer par bloc le contenu de {}
- it - inner block with <> tags
- Esc or Ctrl + c - quitter le mode visuel
Commandes du mode visuel
- > - décaler le texte vers la droite
- < - décaler le texte vers la gauche
- y - copier le texte marqué
- d - supprimer le texte marqué
- ~ - modifier la casse
- u - change marked text to lowercase
- U - change marked text to uppercase
Registres
- :reg[isters] - afficher le contenu des registres
- "xy - copier dans le registre X
- "xp - coller le contenu du registre X
- "+y - copier dans le registre système
- "+p - coller dans le registre système
0 - dernière copie
" - Registre sans nom, dernière suppression ou copie
% - nom du fichier actuel
# - nom du fichier alternatif
* - clipboard contents (X11 primary)
+ - clipboard contents (X11 clipboard)
/ - last search pattern
: - last command-line
. - last inserted text
- - last small (less than a line) delete
= - expression register
_ - black hole register
Marques
- :marks - lister des marques
- ma - définir la position actuelle pour la marque A
- `a - accéder à la position de la marque A
- y`a - copier le texte à la position de la marque A
- `0 - go to the position where Vim was previously exited
- `" - go to the position when last editing this file
- `. - go to the position of the last change in this file
- `` - go to the position before the last jump
- :ju[mps] - list of jumps
- Ctrl + i - go to newer position in jump list
- Ctrl + o - go to older position in jump list
- :changes - list of changes
- g, - go to newer position in change list
- g; - go to older position in change list
- Ctrl + ] - jump to the tag under cursor
Macros
- qa - enregistre la macro a
- q - arrêter l'enregistrement de la macro
- @a - exécuter la macro a
- @@ - re-exécuter la dernière macro executée
Copier-coller
- yy - copier une ligne
- 2yy - copier 2 lignes
- yw - copier un mot
- yiw - copier le mot sous le curseur
- yaw - copier le mot sous le curseur avec l'espace après ou avant
- y$ or Y - copier jusqu'à la fin de la ligne
- p - coller le presse-papier après le curseur
- P - coller le presse-papier avant le curseur
- gp - put (paste) the clipboard after cursor and leave cursor after the new text
- gP - put (paste) before cursor and leave cursor after the new text
- dd - supprimer (couper) une ligne
- 2dd - supprimer (couper) 2 lignes
- dw - supprimer (couper) un mot
- diw - supprimer (couper) un mot sous le curseur
- daw - supprimer (couper) un mot avec l'espace après ou avant
- :3,5d - delete lines starting from 3 to 5
e.g.
:.,$d - From the current line to the end of the file
:.,1d - From the current line to the beginning of the file
:10,1d - From the 10th line to the beginning of the file
- :g/{pattern}/d - delete all lines containing pattern
- :g!/{pattern}/d - delete all lines not containing pattern
- d$ or D - supprimer (couper) jusqu'à la fin de la ligne
- x - supprimer (couper) un caractère
Indent text
- >> - indent (move right) line one shiftwidth
- << - de-indent (move left) line one shiftwidth
- >% - indent a block with () or {} (cursor on brace)
- <% - de-indent a block with () or {} (cursor on brace)
- >ib - indent inner block with ()
- >at - indent a block with <> tags
- 3== - re-indent 3 lines
- =% - re-indent a block with () or {} (cursor on brace)
- =iB - re-indent inner block with {}
- gg=G - re-indent entire buffer
- ]p - paste and adjust indent to current line
Quitter
- :w - écrire (sauver) le fichier
- :w !sudo tee % - écrire (sauver) le fichier en utilisant sudo
- :wq or :x or ZZ - écrire (sauver) et quitter
- :q - quitter (échoue s'il y a des modifications non sauvegardées)
- :q! or ZQ - quitter et abandonner les modifications non sauvegardées
- :wqa - écrire (sauver) et fermer tous les onglets
Rechercher et remplacer
- /pattern - chercher le motif
- ?pattern - chercher en arrière le motif
- \vpattern - motif 'très magique': les caractères non alphanumériques sont interprétés comme des caracètres spéciaux regex (pas besoin d'échapper)
- n - répéter la recherche dans la même direction
- N - répéter la recherche dans la direction opposée
- :%s/old/new/g - remplacer toutes les occurrences de old avec new dans tout le fichier
- :%s/old/new/gc - remplacer toutes les occurrences de old avec new dans tout le fichier (demande confirmation)
- :noh[lsearch] - supprime le surlignage du résultat des recherches
Rechercher dans plusieurs fichiers
- :vim[grep] /pattern/ {`{file}`} - rechercher un motif dans plusieurs fichiers
- :cn[ext] - atteindre le prochain résultat
- :cp[revious] - atteindre le précédent résultat
- :cope[n] - ouvre une fenetre contenant une liste des resultats
- :ccl[ose] - close the quickfix window
Onglets
- :tabnew or :tabnew {page.words.file} - ouvrir un fichier dans un nouvel onglet
- Ctrl + wT - déplacer la fenêtre en cours dans son propre onglet
- gt or :tabn[ext] - aller à l'onglet suivant
- gT or :tabp[revious] - aller à l'onglet précédent
- #gt - aller à l'onglet #
- :tabm[ove] # - déplacer l'onglet à la position # (commence à 0)
- :tabc[lose] - fermer l'onglet en cours et toutes ses fenêtres
- :tabo[nly] - fermer tous les onglets sauf l'onglet courant
-
:tabdo command - exécute la
commande
sur tout les onglets (ex::tabdo q
- ferme tout les onglets ouverts)
Travailler avec plusieurs fichiers
- :e[dit] file - modifier un fichier dans un nouveau tampon
- :bn[ext] - aller au tampon suivant
- :bp[revious] - aller au tampon précédent
- :bd[elete] - supprimer un tampon (fermer le fichier)
- :b[uffer]# - go to a buffer by #
- :b[uffer] file - go to a buffer by file
- :ls or :buffers - liste tout les tampons ouverts
- :sp[lit] file - ouvrir un fichier dans un nouveau tampon et diviser la fenêtre
- :vs[plit] file - ouvrir un fichier dans un nouveau tampon et diviser la fenêtre verticalement
- :vert[ical] ba[ll] - edit all buffers as vertical windows
- :tab ba[ll] - edit all buffers as tabs
- Ctrl + ws - diviser la fenêtre
- Ctrl + wv - diviser la fenêtre verticalement
- Ctrl + ww - changer de fenêtre
- Ctrl + wq - fermer la fenêtre
- Ctrl + wx - exchange current window with next one
- Ctrl + w= - make all windows equal height & width
- Ctrl + wh - déplacer le curseur vers la fenêtre de gauche (division verticale)
- Ctrl + wl - déplacer le curseur vers la fenêtre de droite (division verticale)
- Ctrl + wj - déplacer le curseur vers la fenêtre en dessous (division horizontale)
- Ctrl + wk - déplacer le curseur vers la fenêtre au dessus (division horizontale)
- Ctrl + wH - make current window full height at far left (leftmost vertical window)
- Ctrl + wL - make current window full height at far right (rightmost vertical window)
- Ctrl + wJ - make current window full width at the very bottom (bottommost horizontal window)
- Ctrl + wK - make current window full width at the very top (topmost horizontal window)
Diff
- zf - manually define a fold up to motion
- zd - delete fold under the cursor
- za - toggle fold under the cursor
- zo - open fold under the cursor
- zc - close fold under the cursor
- zr - reduce (open) all folds by one level
- zm - fold more (close) all folds by one level
- zi - toggle folding functionality
- ]c - jump to start of next change
- [c - jump to start of previous change
- do or :diffg[et] - obtain (get) difference (from other buffer)
- dp or :diffpu[t] - put difference (to other buffer)
- :diffthis - make current window part of diff
- :dif[fupdate] - update differences
- :diffo[ff] - switch off diff mode for current window