C'è un modo per visualizzare le parti piegate come un albero?


10

La piegatura è utile per nascondere parti del documento. Una rappresentazione visiva della struttura pieghevole come un albero sarebbe utile per comprendere a colpo d'occhio la struttura del documento.

Risposte:


11

È possibile utilizzare :set foldcolumn=<number>per visualizzare una <number>colonna a livello che tenta di visualizzare i livelli di piega. Sarebbe simile a questo, per impostazione predefinita (con un metodo di piega marcatore, usando {{{e }}}):

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

Tuttavia, ciò consuma un sacco di immobili orizzontali. Un altro metodo sarebbe quello di scrivere foldtext()un'implementazione personalizzata che legga il livello di piega con foldlevel()e formatta di conseguenza. Questo sprecherà meno spazio orizzontale, ma non sarà davvero utile per comprendere visivamente l'albero poiché non puoi vedere le pieghe sotto una piega crollata. Ad esempio, il tuo .vimrc:

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

Esistono plug-in che forniscono visualizzazioni su richiesta della gerarchia di piega, come folddigest.vim . Funzionano, essenzialmente, analizzando il livello di piega di ogni linea, costruendo una struttura dati appropriata e scaricando una visualizzazione della struttura dati su un nuovo buffer. Probabilmente potresti adattare la tecnica alle tue esigenze.

Potresti anche voler consultare i plugin che forniscono "guide di rientro" come questa . Non li ho mai usati personalmente e ho sentito che causano problemi di prestazione ad alcune persone poiché generalmente implicano la generazione di molti momenti salienti delle partite personalizzate tramite matchadd(), ma il tuo chilometraggio può variare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.