Apakah ada cara untuk menampilkan bagian yang dilipat sebagai pohon?


10

Lipat berguna untuk menyembunyikan bagian-bagian dokumen. Representasi visual dari struktur lipat sebagai pohon akan berguna untuk memahami struktur dokumen secara sekilas.

Jawaban:


11

Anda dapat menggunakan :set foldcolumn=<number>untuk menampilkan <number>kolom-lebar yang mencoba memvisualisasikan tingkat lipatan. Akan terlihat seperti ini, secara default (dengan metode lipatan marker, menggunakan {{{dan }}}):

-    {{{ Top Level Fold
|-   {{{ Nested Fold
||-  {{{ Deepest Fold
|||  }}}
||   }}}
|-   {{{ Another Nested Fold
||   }}}
|    }}}

Namun, ini mengkonsumsi real-estate horizontal yang cukup banyak. Metode lain adalah dengan menulis foldtext()implementasi kustom yang membaca tingkat flip dengan foldlevel()dan format yang sesuai. Ini akan membuang lebih sedikit ruang horisontal, tetapi tidak akan benar-benar membantu untuk memahami pohon secara visual karena Anda tidak dapat melihat lipatan di bawah lipatan yang runtuh. Misalnya, Anda .vimrc:

set foldtext=CustomFoldText()
function! CustomFoldText()
  let line = getline(v:foldstart) . "..."
  return repeat("--| ", v:foldlevel) . line
endfunction

Ada plugin yang menyediakan visualisasi sesuai permintaan dari hierarki flip, seperti folddigest.vim , juga. Mereka bekerja, pada dasarnya, dengan mengurai tingkat lipatan setiap baris, membangun struktur data yang sesuai, dan membuang visualisasi struktur data ke buffer baru. Anda mungkin bisa menyesuaikan teknik dengan kebutuhan Anda sendiri.

Anda mungkin juga ingin melihat plugin yang menyediakan "panduan indentasi," seperti ini . Saya tidak pernah menggunakan mereka secara pribadi, dan saya mendengar mereka menyebabkan beberapa masalah kinerja karena mereka umumnya melibatkan menghasilkan banyak sorotan pertandingan khusus melalui matchadd(), tetapi jarak tempuh Anda mungkin bervariasi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.