Estoy en el proceso de embellecer algún código fuente usando vim. {1}
He creado un par de macros vim que realizan los pasos individuales: eliminar espacios en blanco al final, eliminar líneas vacías después {
, eliminar líneas vacías antes {
, ese tipo de cosas.
Ahora, quiero crear una macro que ejecute todas las macros individuales en secuencia. Sin embargo, una vez que finaliza la primera macro recursiva (porque ya no puede encontrar coincidencias -> error de coincidencia), mi macro "wrapper" también finaliza.
¿Hay alguna manera de hacer que una macro vim continúe después de que un submacro generó un error?
{1} Yo sé acerca reformatters automáticas. Incluso podría usarlos en mi problema actual. Simplemente mencioné el reformateo de la fuente por el bien del ejemplo. No publique ninguna respuesta sobre este embellecedor fuente o eso. La pregunta no se trata de reformatear el código per se , sino de las macros vim.
Ejemplo:
- Macro 1: recorte de espacios en blanco al final
qw/\s\+$d$@wq
- Macro 2: eliminar líneas vacías antes}
qe/\n\n *}dd@eq
- Macro de envoltura - reenganche, Macro 1, Macro 2 -
qr:retab@w@eq
Cuando ejecuto el reiniciador, @r
se volverá a agrupar, luego ejecutará la Macro 1 hasta que no se encuentren más espacios en blanco al final, luego terminaré ( sin ejecutar la Macro 2).
Aclaración:
Lo que estoy buscando es cómo llamar a un submacro para que cuando ese submacro termine, la macro de llamada continúe.