Saya sedang dalam proses mempercantik beberapa kode sumber menggunakan vim. {1}
Saya telah membuat beberapa makro vim yang melakukan langkah-langkah individual: menghapus trailing whilespace, menghapus baris kosong setelah {
, menghapus baris kosong sebelumnya {
, hal-hal semacam itu.
Sekarang, saya ingin membuat makro yang mengeksekusi semua makro secara berurutan. Namun, begitu makro rekursif pertama berakhir (karena tidak dapat lagi menemukan kecocokan -> kesalahan pencocokan), makro "pembungkus" saya juga berakhir.
Apakah ada cara untuk membuat makro vim melanjutkan setelah submacro menghasilkan kesalahan?
{1} Saya tahu tentang reformator otomatis. Saya bahkan mungkin menggunakannya pada masalah saya saat ini. Saya hanya menyebutkan pemformatan ulang sumber untuk contoh ini. Jangan memposting jawaban apapun tentang ahli kecantikan sumber ini atau itu. Pertanyaannya bukan tentang memformat ulang kode per se , tetapi tentang makro vim.
Contoh:
- Makro 1 - memangkas spasi tambahan -
qw/\s\+$d$@wq
- Makro 2 - menghapus baris kosong sebelumnya} -
qe/\n\n *}dd@eq
- Makro Wrapper - retabbing, Makro 1, Makro 2 -
qr:retab@w@eq
Ketika saya menjalankan pembungkus - @r
- itu akan retab, kemudian jalankan Macro 1 sampai tidak ada spasi spasi tambahan ditemukan, kemudian hentikan ( tanpa menjalankan Macro 2).
Klarifikasi:
Apa yang saya cari adalah bagaimana memanggil submacro sehingga ketika submacro itu berakhir, makro panggilan berlanjut?