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]
q
termine l’enregistrement"[lettre]P
fait 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
qa
débute l’enregitrement de la macroa
- je fais ma macro
q
termine l’enregistrement de la macroa
tabe
pour ouvrir un nouvel onglet"aP
pour faire un paste de la macroa
:w mymacro.vim
pour 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
<?xml
et</head>
:
:%s/<?xml \_.\{-\}<\/head>\n//g
- Effacer tout ce qu’il y a entre
</body
et<body>
:
:%s/<\/body\_.\{-\}<body\_.\{-\}>\n//g