Câu trả lời:
Bạn có thể sử dụng :set foldcolumn=<number>
để hiển thị một <number>
cột trên toàn thế giới cố gắng trực quan hóa các mức độ gấp. Theo mặc định, nó sẽ trông giống như thế này (với phương thức gấp đánh dấu, sử dụng {{{
và }}}
):
- {{{ Top Level Fold
|- {{{ Nested Fold
||- {{{ Deepest Fold
||| }}}
|| }}}
|- {{{ Another Nested Fold
|| }}}
| }}}
Tuy nhiên, điều này tiêu thụ khá nhiều bất động sản theo chiều ngang. Một phương pháp khác là viết một foldtext()
triển khai tùy chỉnh để đọc mức độ gấp foldlevel()
và định dạng tương ứng. Điều này sẽ lãng phí không gian ngang ít hơn, nhưng sẽ không thực sự hữu ích cho việc hiểu trực quan về cây vì bạn không thể nhìn thấy các nếp gấp bên dưới nếp gấp bị sụp đổ. Ví dụ .vimrc
: của bạn :
set foldtext=CustomFoldText()
function! CustomFoldText()
let line = getline(v:foldstart) . "..."
return repeat("--| ", v:foldlevel) . line
endfunction
Có các plugin cung cấp trực quan hóa theo yêu cầu của hệ thống phân cấp gấp, chẳng hạn như folddigest.vim . Về cơ bản, chúng hoạt động bằng cách phân tích mức độ gấp của mỗi dòng, xây dựng cấu trúc dữ liệu phù hợp và đưa trực quan hóa cấu trúc dữ liệu vào bộ đệm mới. Bạn có thể có thể thích ứng các kỹ thuật theo nhu cầu của riêng bạn.
Bạn cũng có thể muốn xem các plugin cung cấp "hướng dẫn thụt lề", chẳng hạn như plugin này . Tôi chưa bao giờ sử dụng cá nhân họ và tôi nghe nói họ gây ra một số vấn đề về hiệu suất cho mọi người vì họ thường liên quan đến việc tạo ra nhiều điểm nổi bật phù hợp thông qua matchadd()
, nhưng số dặm của bạn có thể thay đổi.