Ini 'foldmethod'adalah opsi jendela-lokal; pengaturan dari Anda ~/.vimrctidak selalu memiliki efek yang tepat.
Karena lipatan sintaks terikat pada html filetype , pengaturan ini milik ~/.vim/after/ftplugin/html.vim:
setlocal foldmethod=syntax
Ini tergantung pada milik filetype plugin onAnda ~/.vimrc, yang mungkin Anda miliki. Anda juga dapat mengonfigurasi opsi terkait lainnya di sana, mis foldcolumn=4.
Perhatikan juga sejauh ini (pada Vim 7.4.1830), skrip sintaks HTML default hanya melipat tag multi-baris itu sendiri, bukan teks antara tag pembuka dan penutup .
Jadi, ini terlipat:
<div
class="foo"
style="width: 100"
>
Tetapi ini tidak:
<div>
<b>stuff in between</b>
</div>
Untuk mendapatkan ini, Anda perlu memperluas skrip sintaksis, misalnya melalui yang berikut ini, ditempatkan ke ~/.vim/after/syntax/html.vim:
Alternatif 1
Lipat dilakukan antara semua kecuali elemen html batal (yang tidak memiliki saudara kandung, seperti <br>). Dikontribusikan oleh @zanona; Terima kasih!
syntax region htmlFold start="<\z(\<\(area\|base\|br\|col\|command\|embed\|hr\|img\|input\|keygen\|link\|meta\|para\|source\|track\|wbr\>\)\@![a-z-]\+\>\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d
Alternatif 2
Lipat dilakukan antara struktural tertentu (misalnya <head>), tingkat paragraf (misalnya <p>, <li>) dan <script>tag HTML tambahan (misalnya ).
syntax region htmlFold start="<\z(p\|h\d\|i\?frame\|table\|colgroup\|thead\|tfoot\|tbody\|t[dhr]\|pre\|[diou]l\|li\|span\|div\|head\|script\|style\|blockquote\|form\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d