Dalam vim, saya biasanya diatur foldmethod
untuk indent
untuk sebagian besar jenis file. Secara umum, saya suka file dibuka dengan semua lipatan terbuka. Namun, penting untuk segera mulai menggunakan zmuntuk mulai menutup lipatan secara global di seluruh file, satu tingkat pada suatu waktu, memungkinkan saya untuk melihat keseluruhan struktur file tanpa detail yang menghalangi.
Satu-satunya solusi umum yang saya temukan adalah mengatur foldlevelstart
ke angka yang sangat tinggi, misalnya 99, untuk memastikan bahwa semua file (dengan mengingat file yang berbeda akan memiliki tingkat indentasi maksimum yang berbeda) mulai dibuka sepenuhnya. Namun, saya kemudian harus menggunakan zmberulang kali untuk mengurangi foldlevel
ke tingkat lipatan maksimum file, biasanya jauh lebih sedikit dari 99, yang rumit dan tidak praktis. Saya dapat mengatur foldlevel
secara manual menggunakan baris perintah vim, tetapi saya masih perlu mengetahui indentasi maksimum dalam file.
Apakah ada cara praktis untuk membuka file dengan foldlevel
set ke tepat satu lebih dari level indent / fold maksimum saat ini dalam file itu sendiri?
Misalnya, diberikan file berikut:
a
b
c
d1
d2
e
f1
f2
Tekan tombol pertama zmakan menunjukkan ini:
a
b
c
+-- 2 lines: d1------
e
+-- 2 lines: f1------
(Namun, perlu diketahui bahwa ini harus berfungsi untuk kasus umum di mana indentasi maksimum awal file dapat berupa nilai apa pun).
sumber
zr
denganzm
; yang terakhir mengurangi tingkat lipat.zm
= lipat lebih banyak (kurangi foldlevel) danzr
= lipat lebih sedikit (add foldlevel)Jawaban:
Ini menemukan tingkat lipat tertinggi dalam file saat ini:
Untuk mengatur ini secara otomatis, Anda dapat menggunakan
:autocmd
:sumber
foldlevelstart
tidak memiliki opsi seperti ini.foldlevel
adalah 0 danfoldlevelstart
-1 ketika saya meluncurkan file dengan pengaturan itu.Alih-alih menggunakan
zr
, gunakanzR
, yang akan membuka semua lipatan. Demikian pula,zM
akan menutup semua lipatan.sumber
zR
(atur foldlevel ke level tertinggi) laluzm
akan berhasil. Itu hanya satu langkah ekstra.Opsi ini
set nofoldenable
memungkinkan Anda memulai file dengan semua lipatan terbukasumber