Sintaksnya foldmethod
bagus, tapi kadang-kadang saya hanya ingin melipat komentar di file sumber.
Juga sintaks lipat komentar hanya berfungsi untuk komentar C-Style seperti:
/*
...
*/
Tetapi tidak untuk komentar boilerplate seperti:
//
//
// ...
//
Atau bahkan untuk blok komentar dalam bahasa non-C seperti:
#
#
# ...
#
Bagaimana saya bisa mengkonfigurasi ini dengan vim?
Jawaban:
Melipat komentar saja cukup mudah dengan menggunakan
foldmethod=expr
:Ini hanya akan memeriksa apakah baris dimulai dengan jumlah spasi + karakter komentar. Perhatikan bahwa ini cukup naif, dan mungkin tidak berfungsi untuk semua bahasa. Jadi, Anda mungkin ingin menggunakan autocmd untuk lebih spesifik:
Untuk informasi lebih lanjut tentang lipatan, lihat:
:help fold-expr
:help folding-functions
Menggunakan sintaks lipat dan lipat komentar lebih terlibat; ini membutuhkan modifing file sintaks
/usr/share/vim/vim74/syntax/*.vim
, dan akan spesifik untuk bahasa yang Anda gunakan.Perhatikan bahwa beberapa tipe file sudah melakukan ini! Misalnya dari
ruby.vim
:sumber
Saya suka melipat dengan lekukan tetapi termasuk komentar di flip (maksud saya setiap komentar mendapatkan tingkat lipatan yang sama dengan baris sebelumnya).
Sayangnya, kata kunci foldignore hanya berfungsi untuk satu baris komentar. Jadi saya lipat dengan expr di vimrc:
Blok terakhir:
Mengembalikan basis lipatan pada indent.
Dan yang lainnya:
Cek apakah karakter pertama dari baris dianggap sebagai komentar dengan sintaks. Jadi ini adalah cara yang baik untuk menggabungkan lipat indent dan sintaks dengan ekspresi, lipatan paling canggih.
Perhatikan bahwa Anda juga dapat "mengatur teks lipat" tergantung pada bagaimana Anda ingin hasilnya terlihat.
sumber
Anda dapat secara visual memilih blok yang dikomentari dengan
vac
dan kemudian membuat lipatan manualzf
.Objek teks komentar dapat berupa ekstensi bahasa untuk menetapkan objek teks vim standar. Mengujinya dengan sintaks Go.
sumber
ac
bukan builtin. Tetapi dengan komentar topegc
adalah objek teks. Jadi solusi yang lebih baik adalahzfac
,,zfgc
atauzfip
paling buruk