Vim kullanarak bazı kaynak kodlarını güzelleştirme sürecinde bulunuyorum. {1}
Tek tek adımları gerçekleştiren birkaç vim makro oluşturdum: sondaki boşlukları kaldırmak {
, sonra boş satırları kaldırmak {
, daha önce boş satırları kaldırmak , bu tür şeyler.
Şimdi, tüm ayrı makroları sırayla yürüten bir makro oluşturmak istiyorum. Ancak, ilk özyinelemeli makro sona erdiğinde (artık eşleşme -> eşleme hatası bulamadığı için), benim "sarmalayıcı" makam da sona erer.
Bir submacro hata ürettikten sonra vim makrosunun devam etmesinin bir yolu var mı?
{1} ben biliyorum otomatik reformatters hakkında. Onları şimdiki problemimde bile kullanabilirim. Sadece örnek uğruna kaynak yeniden biçimlendirmeden bahsettim. Etmeyin bu kaynak beautifier veya bu konuda herhangi bir cevap gönderebilir. Soru, kodun kendi başına yeniden biçimlendirilmesi değil , vim makroları ile ilgilidir.
Misal:
- Makro 1 - sondaki boşlukları düzeltme -
qw/\s\+$d$@wq
- Makro 2 - öncesi boş satırları silme} -
qe/\n\n *}dd@eq
- Sarıcı Makro - yeniden oluşturma, Makro 1, Makro 2 -
qr:retab@w@eq
I sarıcı yürütmek zaman - @r
- bu (daha sonra sona erdirmek, bulunan boşluk daha fazla takip eden kadar Makro 1 çalıştırmak retab olacak olmayan makro 2 yürütme).
Açıklama:
Aradığım şey, bir submacro nasıl çağırılır, böylece bu submacro sona erdiğinde, çağıran makro devam eder?