Il m'arrive assez souvent d'enregistrer des macros sous Vim, par exemple quand je cherche à faire un rechercher/remplacer un peu complexe, ou que je fais du traitement de texte et que je veux définir des "styles" pour mes titres.

Pour ceux d'entre-vous qui ne connaissent pas trop cette fonctionnalité, ou qui se demandent pourquoi parfois Vim vous affiche Enregistrement dans la barre d'état, je vous recommande de faire un petit tour dans :help recording le plus rapidement possible :D

Par exemple si je souhaite encadrer mes titres, j'enregistre une petite macro :

test

devient en deux pressions de touche :[1]

+------+
| test |
+------+

Seulement voilà, si je réalise que je me suis trompé à l'enregistrement d'une macro, où bien que la macro ne fait pas tout à fait ce que je veux, je n'avais pas avant d'autre solution que de tout réenregistrer. Je viens de me pencher sur le problème et de découvrir qu'il n'est pas nécessaire de tout refaire.

Il est possible de modifier les macros ! Il suffit de manipuler les registres (registers) qui stockent (entre autres) le contenu des macros. Pour les voir, faites :

:registers

Pour faire appel à ces registres il faut taper " suivi du nom du registre. Par exemple pour coller le registre t dans le document courant je peux faire :

"tp

Il est alors possible d'opérer à toute sorte de changements sur cette ligne pour finalement la recopier dans le registre :

"ty

Voilà, vous savez maintenant comment modifier vos macros.

Notes

[1] La macro qui fait ça est : yyPv$r-i+-^[A-+^[yyjpki| ^[A |^[kVjj:center^Mjjo^[i. Heureusement grâce à l'astuce présentée ici j'ai pu faire évoluer cette macro petit à petit, et surtout je peux l'adapter sans avoir à "tout refaire".