vim : enregistrer puis rejouer une macro en ligne de commande
Vim : enregistrer une macro est très simple :
q[lettre]débute l’enregitrement de la macro[lettre]qtermine l’enregistrement"[lettre]Pfait un paste de l’enregistrement dans le fichier en cours d’édition
Donc moi en pratique :
- J’ouvre le fichier sur lequel je veux faire une macro
qadébute l’enregitrement de la macroa- je fais ma macro
qtermine l’enregistrement de la macroatabepour ouvrir un nouvel onglet"aPpour faire un paste de la macroa:w mymacro.vimpour sauver ma macro dans le fichiermymacro.vim- je quitte tout
- je peux lancer sur tous les fichiers concerné ma macro via :
vim -s mymacro.vim [fichier]
Mémo pour l’expression régulière
« remplacer tout y compris s’il y a des lignes au milieu »
http://vimregex.com/#Non-Greedy
- Effacer tout ce qu’il y a entre
<?xmlet</head>:
:%s/<?xml \_.\{-\}<\/head>\n//g - Effacer tout ce qu’il y a entre
</bodyet<body>:
:%s/<\/body\_.\{-\}<body\_.\{-\}>\n//g