Référence Vim
Grégoire Lejeune, 2011 - WTFPL
algorithmique.net
Sommaire
- A propos
- Mouvements
- Edition
- Sauvegarder et quitter
- Recherche
- Utiliser les marques
- Substitution
- split
- Indentation et reformatage
- Utilisation des buffers
- Utilisation des tabs
- Configuration de VIM
- Quelques plugins
A propos
Ce document regroupe l’ensemble de mes découvertes sur Vim. Dans la première partie, je récapitule les commandes standards, et dans la seconde je me penche sur l’utilisation de certains plugins.
Ce document est disponible au format HTML, MultiMarkdown, PDF et LaTeX. Il est diffusé sous licence WTFPL.
[ Sommaire ]
Mouvements
| Commande | Déplacement |
|---|---|
h |
Gauche |
j |
Bas |
k |
Haut |
l |
Droite |
w |
Mot suivant, précédé d’un signe ou d’un espace |
W |
Mot suivant, précédé d’un espace |
b |
Mot précédent, précédé d’un signe ou d’un espace |
B |
Mot précédent, précédé d’un espace |
e |
Fin du mot, suivi d’un signe ou d’un espace |
E |
Fin du mot, suivi d’un espace |
# |
Va sur le prochain mot correspondant au mot courant |
) |
Début de la phrase suivante |
( |
Début de la phrase précédente |
} |
Début du paragraphe suivant |
{ |
Début du paragraphe précédent |
]] |
Début de la section suivante |
[[ |
Début de la section précédente |
0 |
Début de la ligne |
$ |
Fin de la ligne |
^ |
Premier caractère non blanc de la ligne |
+ |
Premier caractère non blanc de la prochaine ligne |
- |
Premier caractère non blanc de la précédente ligne |
n... |
nième caractère de la ligne |
| H | Première ligne affichée à l’écran |
| M | Ligne située au milieu de l’écran |
| L | Dernière ligne affichée à l’écran |
nH |
nième ligne après la première affichée à l’écran |
nL |
nième ligne avant la dernière affichée à l’écran |
| Ctrl-f | Une page vers le bas |
| Ctrl-b | Une page vers le haut |
| Ctrl-d | Une demi-page vers le bas |
| Ctrl-u | Une demi-page vers le haut |
| Ctrl-e | Une ligne de mois en haut de l’écran |
| Ctrl-y | Une ligne de mois au bas de l’écran |
| n Return | Positionne la ligne n en haut de l’écran |
nG ou :n |
Aller à la nième ligne du fichier |
G ou :$ |
Aller à la dernière ligne du fichier |
gg ou :0 |
Aller à la première ligne du fichier |
zz |
Déplacer la ligne courante au milieu de l’écran |
zt |
Déplacer la ligne courante en haut de l’écran |
zb |
Déplacer la ligne courante en bas de l’écran |
[ Sommaire ]
Edition
Insertion
| Commande | Action |
|---|---|
i |
Insertion avant le curseur |
a |
Insertion après le curseur |
I |
Insertion avant le premier caractère de la ligne |
A |
Insertion après le dernier caractère de la ligne |
o |
Insertion sur une nouvelle ligne, au-dessous de la ligne courante |
O |
Insertion sur une nouvelle ligne, au-dessus de la ligne courante |
[ Sommaire ]
Modification
| Commande | Action |
|---|---|
r |
Rempace le caractère courant |
R |
Mode remplacement (overwrite) |
Dans tous les cas, après l’utilisation d’une des commandes suivantes, nous sommes en mode insertion (i) :
| Commande | Action |
|---|---|
s |
Supprime le caractère courant |
cw |
Supprime tous les caractères jusqu’à la fin du mot courant |
cc ou S |
Supprime tous les caractères de la ligne courante |
cmention |
Supprime tous les caractères jusqu’à la mention indiquée |
D |
Supprime tous les caractères jusqu’à la fin de la ligne courante |
Exemples pour cmention :
c#va supprimer tous les caractères jusqu’au début prochain mot courant.cdx va supprimer tous les caractères jusqu’au prochain caractère x.- …
[ Sommaire ]
Suppression
Dans VIM, la suppression de caractères est une coupure, dans le sens ou ce qui est supprimé est toujours placé dans le presse-papier.
| Commande | Action |
|---|---|
x |
Supprime le caractère situé sous le curseur |
X |
Supprime le caractère situé avant le curseur |
dw |
Supprime tous les caractères jusqu’à la fin du mot courant |
dd |
Supprime la ligne courante |
dmention |
Supprime tous les caractères jusqu’à la mention indiquée |
D |
Supprime tous les caractères jusqu’à la fin de la ligne courante |
[ Sommaire ]
Copier
| Commande | Action |
|---|---|
yw |
Copie tous les caractères jusqu’à la fin du mot courant |
yy |
Copie la ligne courante |
ymention |
Copie tous les caractères jusqu’à la mention indiquée |
Y |
Copie tous les caractères jusqu’à la fin de la ligne courante |
[ Sommaire ]
Coller
| Commande | Action |
|---|---|
p |
Colle après le curseur |
P |
Colle avant le curseur |
[ Sommaire ]
Divers
| Commande | Action |
|---|---|
. |
Rejoue la dernière commande |
J |
Joins la ligne suivante à la fin de la ligne courante |
u |
Annule la dernière modification |
U |
Annule toutes les dernières modifications pour la ligne |
[ Sommaire ]
Sauvegarder et quitter
| Commande | Action |
|---|---|
ZZ ou :x ou :wq |
Sauvegarde et quitte |
:w |
Sauvegarde |
:w filename |
Sauvegarde dans le fichier filename |
:w! |
Sauvegarde en outre passant les éventuelles protections |
:m,nw filename |
Sauvegarde le contenu des lignes n à m dans le fichier filename |
:m,nw>> filename |
Ajoute le contenu des lignes n à m à la fin du fichier filename |
:q |
Quitte |
:q! |
Quitte en outre passant les éventuelles protections |
:n |
Edite le fichier suivant |
:e filename |
Edit le fichier filename |
:e! |
Reviens au dernier état sauvegardé |
[ Sommaire ]
Recherche
| Commande | Résultat |
|---|---|
/pattern |
Recherche le prochain pattern |
?pattern |
Recherche le précédent pattern |
:g// |
Afficher l’ensemble des résultats de recherche |
n ou / |
Répète la dernière recherche, en avant |
N ou ? |
Répète la dernière recherche, en arrière |
tx |
Va se positionner juste avant le prochain caractère x |
Tx |
Va se positionner juste après le précédent caractère x |
fx |
Va se positionner sur le prochain caractère x |
Fx |
Va se positionner sur le précédent caractère x |
, |
Répète la dernière recherche de caractère, en avant |
; |
Répète la dernière recherche de caractère, en arrière |
[ Sommaire ]
Utiliser les marques
| Commande | Action |
|---|---|
mx |
Pose la marque x à la position courante |
| `x | Se positionne à la marque x |
| ‘x | Se positionne au début de la ligne ou se trouve la marque x |
| ” | Retourne à la précédente marque ou position |
[ Sommaire ]
Substitution
La substitution se fait avec la commande suivante :
:[[start],[end]]s/old/new/[flags]
start et end permettent de délimiter la zone de substitution. Par exemple :
:%s/toto/titi/greplacera toute les occurances de toto par titi dans tout le document.:3,7/toto/titi/greplacera toute les occurances de toto par titi des lignes 3 à 7 incluses.
Si start est omis, la substitution se fait à partir de la ligne courrante.
Si end est omis, la substitution se fait jusqu’à la ligne courrante.
Dans le cas présent old correspond à ce qui doit être replacé, sous forme d’expression rationnelle. new est ce par quoi on souhaite remplacer old.
Si old est omis, VIM prendra la dernière recherche ou substitution.
Liste des flags
| Flag | Action |
|---|---|
c |
Demande une confirmation avant chaque substitution |
g |
Change toutes le occurances de old sur la ligne |
p |
Affiche la ligne après la substitution |
Caractères spéciaux
Dans la chaine de recherche (old)
| Caractère | Correspondance |
|---|---|
. |
N’importe quel caractère à l’exception du retour à la ligne |
e* |
Zero au plus de fois l’expression e |
^ |
Début de la ligne |
$ |
Fin de la ligne |
\c |
Traire le caractère spécial c comme un caractère normal |
[r] |
Définit un rang r de catactères |
\(e\) |
Sauvegarde l’expression e dans un buffer |
\n |
Le buffer de capture n |
\< |
Debut de mot |
\> |
Fin de mot |
Dans la chaine de substitution (new)
| Caractère | Remplacement |
|---|---|
\n |
Par le contenu du buffer de capture n |
\c |
Traire le caractère spécial c comme un caractère normal |
& |
L’intégralité du texte capturé |
~ |
L’intégralité du texte replacé lors de la dernière substitution |
\u |
Passe le prochain caractère en majuscule |
\l |
Passe le prochain caractère en minuscule |
\U |
Passe tous les caractères suivants en majuscule, jusqu’au prochain \e, \E ou la fin du texte |
\L |
Passe tous les caractères suivants en minuscule, jusqu’au prochain \e, \E ou la fin du texte |
[ Sommaire ]
split
[ Sommaire ]
Indentation et reformatage
[ Sommaire ]
Utilisation des buffers
[ Sommaire ]
Utilisation des tabs
[ Sommaire ]
Configuration de VIM
Mapping
[ Sommaire ]
Ecrire des fonctions
[ Sommaire ]
Définir des commandes
[ Sommaire ]
Les plugins
[ Sommaire ]
Quelques plugins
Fugitive
[ Sommaire ]
NERDTree
[ Sommaire ]
Surround
[ Sommaire ]
Tagbar
[ Sommaire ]