Modes et grammaire
Paliers0 et 2 Les modes se retiennent en une heure. La grammaire de la seconde moitié de cette page est ce qu’on met plusieurs semaines à intégrer, et c’est tout l’intérêt de l’éditeur.
Les modes
Une même touche ne fait pas la même chose selon le mode : d supprime en mode
normal et écrit un « d » en mode insertion. C’est ce qui déroute au début, et ce
qui libère le clavier entier pour des commandes ensuite.
| Mode | Rôle |
|---|---|
| Normal | Mode par défaut : on se déplace et on lance des opérations. |
| Insertion | On écrit du texte. |
| Visuel | On sélectionne du texte avant de lui appliquer une opération. |
| Remplacement | On écrase le texte existant au fil de la frappe. |
| Commande | On saisit une commande Ex — :w, :s/…, :help. |
| Terminal | On interagit avec un shell ouvert dans un buffer (:terminal). |
Échap — ou Ctrl + [, plus accessible — ramène toujours au mode normal.
Entrer en mode insertion
i: avant le curseura: après le curseurI: au premier caractère non-blanc de la ligneA: à la fin de la ligneo: sur une nouvelle ligne en dessousO: sur une nouvelle ligne au-dessuss: après avoir supprimé le caractère sous le curseurS: après avoir vidé la ligneC: après avoir supprimé jusqu’à la fin de la lignegi: là où l’on avait quitté le mode insertion la dernière fois
A et o sont de loin les plus utilisés — on écrit presque toujours en fin de
ligne ou sur une ligne neuve. Prendre l’habitude de A plutôt que $ puis a
fait gagner une frappe des dizaines de fois par jour.
Entrer en mode visuel
v: sélection caractère par caractèreV: sélection par lignes entièresCtrl + v: sélection par blocs, rectangulairegv: ré-sélectionner la dernière sélection
Entrer en mode remplacement
r{char}: remplace le seul caractère sous le curseur et reste en mode normalR: écrase le texte jusqu’àÉchap
La grammaire
Ce qui fait la puissance de l’éditeur, ce n’est pas la liste des raccourcis mais le fait qu’ils se combinent. Une commande d’édition suit toujours la même forme :
Le compteur peut aussi se placer en tête : 2dw et d2w sont équivalents.
- l’opérateur dit ce que l’on fait — supprimer, changer, copier, indenter
- le compteur dit combien de fois
- la motion dit sur quelle portion de texte
d2w se lit donc delete 2 words.
Les opérateurs
| Opérateur | Action |
|---|---|
d | supprimer (delete) |
c | changer (change) — supprime puis passe en insertion |
y | copier (yank) |
> / < | indenter / désindenter |
= | ré-indenter |
gu / gU | passer en minuscules / majuscules |
g~ | inverser la casse |
gq | reformater le texte sur la largeur de textwidth |
! | filtrer par une commande externe |
Doubler l’opérateur l’applique à la ligne courante : dd supprime la ligne,
yy la copie, >> l’indente.
Le mode visuel inverse l’ordre
En mode normal on annonce l’opération puis sa cible (d2w) ; en mode visuel on
sélectionne d’abord et on applique l’opérateur ensuite (vjjd). Le second est
plus rassurant parce qu’on voit ce qu’on s’apprête à modifier — mais il n’est pas
répétable avec ., ce qui finit par compter. Voir
Automatisation.
La troisième pièce de la grammaire, ce sont les objets texte : au lieu d’une motion, on désigne une structure — un mot, l’intérieur de parenthèses, une fonction. C’est l’objet de la page Édition.
Dans ma config
<leader> est espace, en global comme en local. Le mode terminal se quitte
avec <Esc><Esc> plutôt que l’imprononçable <C-\><C-n> d’origine.