Dobrar é útil para ocultar partes do documento. Uma representação visual da estrutura dobrável como uma árvore seria útil para entender rapidamente a estrutura do documento.
Você pode usar :set foldcolumn=<number>
para exibir uma <number>
coluna ampla que tenta visualizar os níveis de dobra. Seria algo parecido com isto, por padrão (com um método de dobra de marcador, usando {{{
e }}}
):
- {{{ Top Level Fold
|- {{{ Nested Fold
||- {{{ Deepest Fold
||| }}}
|| }}}
|- {{{ Another Nested Fold
|| }}}
| }}}
No entanto, isso consome bastante imóveis horizontais. Outro método seria escrever uma foldtext()
implementação personalizada que leia o nível de dobra foldlevel()
e formate adequadamente. Isso desperdiçará menos espaço horizontal, mas não será realmente tão útil para entender visualmente a árvore, pois você não pode ver as dobras embaixo de uma dobra recolhida. Por exemplo, seu .vimrc
:
set foldtext=CustomFoldText()
function! CustomFoldText()
let line = getline(v:foldstart) . "..."
return repeat("--| ", v:foldlevel) . line
endfunction
Existem plugins que fornecem visualizações sob demanda da hierarquia de dobras, como folddigest.vim . Eles funcionam, essencialmente, analisando o nível de dobra de cada linha, construindo uma estrutura de dados apropriada e transferindo uma visualização da estrutura de dados para um novo buffer. Você provavelmente poderia adaptar a técnica às suas próprias necessidades.
Você também pode procurar plugins que fornecem "guias de recuo", como este . Nunca os usei pessoalmente e soube que eles causam problemas de desempenho a algumas pessoas, pois geralmente envolvem a geração de muitos destaques de correspondência personalizados matchadd()
, mas sua milhagem pode variar.