Sto per abbellire un po 'di codice sorgente usando vim. {1}
Ho creato un paio di macro vim che eseguono i singoli passaggi: rimozione di spazi vuoti finali, rimozione di righe vuote dopo {
, rimozione di righe vuote prima {
, quel tipo di cose.
Ora, voglio creare una macro che esegue tutte le singole macro in sequenza. Tuttavia, una volta terminata la prima macro ricorsiva (poiché non riesce più a trovare alcuna corrispondenza -> errore di corrispondenza), termina anche la mia macro "wrapper".
C'è un modo per far continuare una macro vim dopo che un submacro ha generato un errore?
{1} Io so circa reformatters automatici. Potrei persino usarli sul mio problema attuale. Ho semplicemente citato la riformattazione della fonte per il bene dell'esempio. Non pubblicare alcuna risposta su questo estetista o quello. La domanda non riguarda la riformattazione del codice in sé , ma le macro di VIM.
Esempio:
- Macro 1 - rifilatura degli spazi bianchi finali -
qw/\s\+$d$@wq
- Macro 2 - eliminazione di righe vuote prima} -
qe/\n\n *}dd@eq
- Wrapper Macro - retabbing, Macro 1, Macro 2 -
qr:retab@w@eq
Quando eseguo il wrapper - @r
- eseguirà il retab, quindi eseguirà la Macro 1 fino a quando non viene trovato più spazio vuoto finale, quindi termina ( senza eseguire la Macro 2).
Una precisazione:
Quello che sto cercando è come chiamare un submacro in modo che quando termina quel submacro, la macro chiamante continua?