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 macro a
  • je fais ma macro
  • q termine l’enregistrement de la macro a
  • tabe pour ouvrir un nouvel onglet
  • "aP pour faire un paste de la macro a
  • :w mymacro.vim pour sauver ma macro dans le fichier mymacro.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

Poster un commentaire

Vous devriez utiliser le HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>