Respostas:
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.