Gibt es eine Möglichkeit, gefaltete Teile als Baum anzuzeigen?

10

Das Falten ist nützlich, um Teile des Dokuments auszublenden. Eine visuelle Darstellung der Faltstruktur als Baum wäre hilfreich, um die Dokumentstruktur auf einen Blick zu verstehen.

Demetris
quelle

Antworten:

11

Sie können :set foldcolumn=<number>eine <number>breite Spalte anzeigen , die versucht, Falzstufen zu visualisieren. Standardmäßig würde es ungefähr so ​​aussehen (mit einer Marker-Fold-Methode unter Verwendung von {{{und }}}):

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

Dies verbraucht jedoch ziemlich viel horizontale Immobilien. Eine andere Methode wäre, eine benutzerdefinierte foldtext()Implementierung zu schreiben , die die Faltebene mit liest foldlevel()und entsprechend formatiert. Dies verschwendet weniger horizontalen Platz, ist jedoch für das visuelle Verständnis des Baums nicht so hilfreich, da Sie die Falten unter einer zusammengeklappten Falte nicht sehen können. Zum Beispiel Ihre .vimrc:

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

Es gibt Plugins, die On-Demand-Visualisierungen der Fold-Hierarchie bereitstellen , z. B. folddigest.vim . Sie arbeiten im Wesentlichen, indem sie die Faltebene jeder Zeile analysieren, eine geeignete Datenstruktur aufbauen und eine Visualisierung der Datenstruktur in einem neuen Puffer speichern. Sie könnten die Technik wahrscheinlich an Ihre eigenen Bedürfnisse anpassen.

Möglicherweise möchten Sie sich auch Plugins ansehen, die "Einrückungshandbücher" wie dieses bereitstellen . Ich habe sie nie persönlich verwendet, und ich habe gehört, dass sie bei einigen Personen Leistungsprobleme verursachen, da sie im Allgemeinen viele benutzerdefinierte Match-Highlights über generieren matchadd(), aber Ihr Kilometerstand kann variieren.


quelle