Jestem w trakcie upiększania kodu źródłowego za pomocą vima. {1}
Stworzyłem kilka makr vim, które wykonują poszczególne kroki: usuwanie końcowej spacji, usuwanie pustych linii po {
, usuwanie pustych linii przed {
, tego rodzaju rzeczy.
Teraz chcę utworzyć makro, które wykonuje kolejno wszystkie poszczególne makra. Jednak gdy zakończy się pierwsze makro rekurencyjne (ponieważ nie może już znaleźć żadnych dopasowań -> błąd dopasowania), moje makro „otoki” również się kończy.
Czy istnieje sposób na kontynuowanie makra vim po wygenerowaniu błędu przez submacro?
{1} Ja wiem o automatycznych reformatters. Mogę nawet użyć ich do mojego obecnego problemu. Dla przykładu podałem tylko formatowanie źródła. Nie publikuj żadnych odpowiedzi na temat tego źródłowego upiększacza lub tego. To nie jest pytanie o kod formatowania per se , ale o vim makra.
Przykład:
- Makro 1 - przycinanie końcowych białych znaków -
qw/\s\+$d$@wq
- Makro 2 - usuwanie pustych linii przed} -
qe/\n\n *}dd@eq
- Wrapper Macro - Retabbing, Macro 1, Macro 2 -
qr:retab@w@eq
Kiedy wykonam opakowanie - @r
- przebije, a następnie uruchom Makro 1, dopóki nie zostaną znalezione końcowe białe znaki, a następnie zakończ ( bez wykonywania Makra 2).
Wyjaśnienie:
To, czego szukam, to jak wywołać submacro, aby po zakończeniu tego submacro makro wywołujące było kontynuowane?