Aide-mémoire: commandes VIM

vim est le remplaçant du vénérable vi. Cet éditeur a été conçu à l’époque où il n’y avait ni souris ni touches de fonction (Fn). Il est encore populaire car c’est l’outil qui vous permettra d’être le plus performant dans vos tâches courantes d’édition de texte. Sa principale caractéristiques est que vos doigts restent toujours sur le clavier, pour l’insertion et les commandes.

Pour utiliser vi, il faut savoir que son opération repose sur un mode. Le mode peut être:

  • mode de commande d’édition, navigation,  recherche,  etc)
  • mode d’insertion de texte
  • mode de commande de gestion ( fichier, aide, etc)

Changements de mode

Esc Active le mode de commande. N’a pas d’effet si on n’est pas en mode d’édition
a-i-o-s Active le mode d’édition. Voir les commandes d’insertion dans la section suivante.
: Active le mode de commande de gestion.

Activation du mode d’édition

a Insère du texte après le curseur.
A Insère du texte à la fin de la ligne.
i Insère du texte avant le curseur.
I Insère du texte au début de la ligne.
o Insère une nouvelle ligne sous la ligne courante.
O Insère une nouvelle ligne au dessus de la ligne courante.
s Efface n caractères au curseur et active le mode d’édition.
S Efface n lignes au curseur et active le mode d’édition.

Sauvegarde et sortie

:q Quitter (s’il n’y a aucun changement)
:q! ou :cq ou ZQ Quitter sans sauvegarder.
:w Sauvegarder.
:w Enregistrer sous …
:wq Sauvegarder et quitter.
ZZ Sauvegarder (s’il y a eu changement) et quitter.

Navigation:
le facteur de répétition [n] est optionnel. Par défaut, il vaut 1.

[n]h Déplace le curseur de n caractères vers la gauche.
[n]j Déplace le curseur de n lignes vers le bas.
[n]k Déplace le curseur de n lignes vers le haut.
[n]l Déplace le curseur de n caractères vers la droite.
0 (zéro) Déplace le curseur vers le début de la ligne.
$ Déplace le curseur vers la fin de la ligne.
^ Déplace le curseur vers le 1er caractère non-blanc de la ligne.
[n]w Déplace le curseur vers le début du prochain mot.
[n]W Déplace le curseur vers le début du prochain mot.
La nuance avec w est le séparateur de mots
[n]b Déplace le curseur vers le début du mot précédent.
[n]B Déplace le curseur vers le début du mot précédent.
La nuance avec b est le séparateur de mots
[n]( Déplace le curseur vers le début de la phrase précédente.
[n]) Déplace le curseur vers le début de la phrase suivante.
[n]{ Déplace le curseur vers le début de la phrase précédente.
[n]} Déplace le curseur vers le début de la phrase suivante.
[n]G Déplace le curseur vers la fin du fichier.
[n]gg Déplace le curseur vers le début du fichier.

Effacement de texte: le facteur de répétition [n] est optionnel. Par défaut, il vaut 1.

[n]x Efface le caractère au curseur.
[n]dd Efface n lignes à partir du curseur.
[n]dw Efface n mots suivants.
d0 Efface du début de ligne jusqu’au curseur.
d$ Efface du curseur jusqu’à la fin de ligne.
d( Efface du curseur jusqu’au début de phrase.
d) Efface du curseur jusqu’à la fin de phrase.
dgg Efface du curseur jusqu’au début de fichier.
dG Efface du curseur jusqu’à la fin de fichier.

Recherche et remplacement de texte

/txt Recherche txt vers l’avant.
?txt Recherche txt vers l’arrière.
/ ou n Aller vers l’occurrence suivante.
? ou N Aller vers l’occurrence précédente.
rcar ou r{txt} Remplacer le caractère au curseur par un ou des caractères.
R Remplacer les caractères à partir du curseur, jusqu’en fin de ligne. Terminer par Esc.
:s/txt1/txt2/ Remplacer txt1 par txt2 dans la ligne courante, 1 fois.
:s/t1/t2/opts Remplacer t1 par t2.  opts peut être:
g: toutes les occurrences
c: demander confirmation à chaque remplacement

Copier/coller
Le copier/coller se fait par l’intermédiaire d’un tampon . On peut utiliser plus d’un tampon. Chacune des commandes qui suivent peut être préfixée par « x où x est l’identificateur du tampon. «  » est le tampon par défaut. « + est le tampon-système (utilisé par les autres applications).

[n]yy ou [n]Y Copier n lignes.
[n]yw Copier n mots.
y$ Copier du curseur à la fin de ligne.
p Coller après le curseur.
P Coller avant le curseur.

Opérations sur blocs

v Sélection de caractères. Déplacer le curseur jusqu’à la fin du bloc.
V Sélection de lignes. Déplacer le curseur jusqu’à la fin du bloc.
V Sélection d’une zone rectangulaire. Déplacer le curseur jusqu’à la fin du bloc.
d Effacer le bloc sélectionné.
c Effacer le bloc sélectionné et activer le mode Insertion.
y Copier le bloc sélectionné. Utiliser y ou Y pour coller.
~ Transformer les minuscules en majuscules et vice-versa.
> Indenter vers la droite (introduire des tab).
< Indenter vers la gauche.
!prog Traiter le bloc avec un prog externe (par exemple: sort.

Repères
Très utiles lorsqu’on édite un long fichier.

mx Création du repère x.
`x Aller au repère x.
:marks Lister les repères créés.

Annulation

u Annulation de la dernière commande.
Ctrl+r Reprendre la commande annulée.

Onglets

:tabnew Crée un nouvel onglet
:tabnew f Ouvre le fichier f dans un nouvel onglet
:tabn Active l’onglet suivant
:tabp Active l’onglet précédent
:tabm n Déplace l’onglet courant vers la position n.
Les positions se numérotent à partir de 0
:tabdo cmd Exécute une commande dans chacun des onglets.
Utile pour effectuer un remplacement global.

Préférences
On peut régler les préférences dans vim (ou modifier le fichier ~/.viminfo).
Les exemples qui suivent ne sont qu’un aperçu. Il y en a trop pour tout couvrir.

:set tabstop=4 Règle la largeur d’indentation.
:set showcmd Affiche la commande incomplète sur la dernière ligne.
:set noshowcmd Désactive la préférence ci-dessus.

Conclusion
La liste des commandes de vim est beaucoup plus exhaustive que ce qui a été montré ici. Cet aide-mémoire sera utile aux utilisateurs occasionnels de vim.

Références

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *