VIM kannste knicken!
Methoden
VIM
unterstützt verschiedene Methoden, um zu erkennen, wann eine Faltung veranlasst wird oder um ihren Verschachtelungsgrad zu errechnen. Dabei sollte darauf geachtet werden, dass manche Methoden die Auswertung jeder einzelnen Zeile nach einer Regular Expression erfordern und im schlimmsten Fall, bei relativen Faltungsgrad-Angaben, diese wieder zurückverfolgen müssen. Dafür wird eine Menge Zeit benötigt, und das kann bei langen Dateien zur Last werden.
Die Faltungsmethode wird durch die Variable foldmethod bestimmt. Also lässt sich die Methode durch :set foldmethod=METHODE
festlegen.
Übersicht
manual
- Faltungen werden manuell vorgenommen und nicht in der Datei gespeichert
indent
- Faltungslevel entspricht Einrückungslevel bei jeder Zeile
expr
- Stufe der Verschachtelung wird aus einem Ausdruck oder einer Funktion berechnet
syntax
- Syntax-Hilighting bestimmt faltbare Regionen
marker
- Ist wie
manual
, aber Markierungen werden in den Dateien gespeichert.
Manuelle Faltung
Manuelle Faltung geschieht durch Markierung einer Region (VISUAL
-Modus) und anschließendem Drücken von <z><f>
. Durch <z><d>
wird ein Fold wieder gelöscht, jedoch bleibt dessen Inhalt erhalten, er wird nur entfaltet. Um eine Faltung samt Inhalt zu löschen, dient ein normales <d><d>
.
Die vorgenommenen Faltungen werden in der Datei nicht vermerkt, können jedoch über das VIM
-Kommando :mkview
mit dem Rest der Ansicht-Einstellungen für diese Datei gespeichert werden. Mit :loadview
werden diese dann wiederhergestellt.
Falten nach Einrückung
Bei dieser Methode wird der Faltungsgrad anhand der Einrückung bestimmt. Es wird dabei die tatsächliche Einrückung durch die Variable shiftwidth geteilt, welche festlegt, wie breit eine Einrückung ist. Das heißt, standardmäßig bedeutet die Einrückung von acht Leerzeichen oder einem Tabulator die Erweiterung um ein Foldlevel.
Wenn man Code sinnvoll einrückt, lassen sich mit dieser Methode also durchaus sinnvolle Ergebnisse erzielen, falls es kein syntax
File für das Dateiformat gibt, welches Sie editieren wollen. Sie müssen dann lediglich die Zeilen, die in eine Faltung sollen, in die gleiche Spalte rücken.