Estou no processo de embelezar algum código-fonte usando o vim. {1}
Criei algumas macros do vim que executam as etapas individuais: remoção do espaço em branco à direita, remoção de linhas vazias depois {
, remoção de linhas vazias antes {
, esse tipo de coisa.
Agora, quero criar uma macro que execute todas as macros individuais em sequência. No entanto, quando a primeira macro recursiva termina (porque não consegue mais encontrar correspondências -> erro de correspondência), minha macro "wrapper" também termina.
Existe uma maneira de fazer uma macro vim continuar depois que um submacro gerou um erro?
{1} Eu sei sobre reformatters automáticas. Eu posso até usá-los no meu problema atual. Eu apenas mencionei a reformatação de fonte pelo bem do exemplo. Não poste nenhuma resposta sobre esse embelezador de origem ou sobre isso. A questão não é sobre reformatação de código em si , mas sobre macros do vim.
Exemplo:
- Macro 1 - aparar espaços em branco à direita -
qw/\s\+$d$@wq
- Macro 2 - excluir linhas vazias antes} -
qe/\n\n *}dd@eq
- Macro do invólucro - retabitação, Macro 1, Macro 2 -
qr:retab@w@eq
Quando executo o invólucro - @r
- ele irá retabular e, em seguida, execute a Macro 1 até que não seja encontrado mais espaço em branco à direita, e finalize ( sem executar a Macro 2).
Esclarecimento:
O que estou procurando é como chamar um submacro para que, quando esse submacro termine, a macro de chamada continue?