Składanie jest przydatne, aby ukryć części dokumentu. Wizualna reprezentacja składanej struktury jako drzewa byłaby przydatna do szybkiego zrozumienia struktury dokumentu.
Możesz użyć :set foldcolumn=<number>
do wyświetlenia szerokiej <number>
kolumny, która próbuje wizualizować poziomy zagięcia. Domyślnie wyglądałby mniej więcej tak: (przy użyciu metody markera, przy użyciu {{{
i }}}
):
- {{{ Top Level Fold
|- {{{ Nested Fold
||- {{{ Deepest Fold
||| }}}
|| }}}
|- {{{ Another Nested Fold
|| }}}
| }}}
Zużywa to jednak sporo horyzontalnych nieruchomości. Inną metodą byłoby napisanie niestandardowej foldtext()
implementacji, która odczytuje poziom składania foldlevel()
i odpowiednio formatuje. Spowoduje to marnowanie mniejszej przestrzeni poziomej, ale tak naprawdę nie będzie tak pomocne dla wizualnego zrozumienia drzewa, ponieważ nie widać fałd pod zwiniętym fałdem. Na przykład .vimrc
:
set foldtext=CustomFoldText()
function! CustomFoldText()
let line = getline(v:foldstart) . "..."
return repeat("--| ", v:foldlevel) . line
endfunction
Istnieją wtyczki, które zapewniają wizualizacje hierarchii foldów na żądanie, takie jak folddigest.vim . Działają w zasadzie przez analizowanie poziomu zagięcia każdej linii, budowanie odpowiedniej struktury danych i zrzucanie wizualizacji struktury danych do nowego bufora. Prawdopodobnie możesz dostosować technikę do własnych potrzeb.
Możesz także przyjrzeć się wtyczkom, które zawierają „prowadnice wcięć”, takie jak ten . Nigdy ich osobiście nie używałem i słyszę, że powodują problemy z wydajnością niektórych osób, ponieważ generalnie wiążą się z generowaniem wielu niestandardowych skrótów meczów za pośrednictwem matchadd()
, ale przebieg może być różny.