VIM kannste knicken!
An Markierungen falten
Diese Methode ist der manuellen sehr ähnlich und verwendet sogar die gleichen Keybindings wie diese. Allerdings werden hier die Faltungen durch Markierungen in der Datei gespeichert. Womit dabei markiert wird, ist selbst festlegbar. Standardmäßig werden jedoch {{{ zum Beginn und }}} zum Ende einer Faltung verwendet. Diese können von einer Zahl gefolgt sein, um den Faltungsgrad explizit anzugeben.
/* Eine Funktion, die nichts tut {{{ */
void nichtsfunktion(void)
{
/* Lustige Dinge tun, lustige Sachen machen */
} /* }}} */
Die Markierungen können von Hand eingegeben oder einfach durch das Tastenkürzel <z><f> automatisch erstellt werden. Die Markierungen werden dabei jeweils an das Ende der ersten und letzten markierten Zeile gehängt. Falls die Variable commentstring gesetzt ist, werden die entsprechenden Kommentarzeichen zusätzlich eingefügt. Die Markierung wird durch die Variable foldmarker festgelegt. Analog dazu entfernt VIM automatisch die Markierungen beim Löschen einer Faltung.
In commentstring wird die Zeichenfolge zur Einleitung eines Kommentars gespeichert. Sie enthält dabei %s, was durch die Markierung ersetzt wird.
Navigation
Wenn automatische Fold-Methoden aktiviert sind, werden viele Dateien nach dem öffnen sofort zahlreiche Faltungen enthalten. Diese müssen nun auf irgend eine Weise gehandhabt werden. Das öffnen eines Folds kann geschehen, indem man auf einer Faltungslinie in den Eingabemodus wechselt oder im Eingabemodus auf einer Faltungslinie den Cursor bewegt oder gar etwas eingibt. Dies kann jedoch auch durch eine Tastenkombination geschehen, wie sie im Folgenden erklärt werden. Die Kürzel zur Handhabung von Faltungen beginnen stets mit einem <z>. Die Absicht der VIM-Entwickler hierbei war wahrscheinlich, dass das z aussieht wie ein geknicktes Blatt Papier von der Seite.
- <zf>
- Faltet den zuvor markierten Block
- <zd>
- Löscht die Faltung, in der sich der Cursor befindet. Der Inhalt bleibt dabei erhalten, lediglich die Faltung wird entfernt.
- <zo>
- Öffnet die Faltung unterm Cursor. Zum rekursiven Öffnen aller verschachtelten Faltungen kann <zO> verwendet werden.
- <zc>
- Schließt die Faltung, in der sich der Cursor befindet. Durch <zC> geschieht dies rekursiv.
- <za>
- Ist die Faltung unterm Cursor geöffnet, so wird sie geschlossen. Ist sie das bereits, so wird sie geöffnet. Auch hier gilt wieder, dass die Aktion durch <zA> rekursiv ausgeführt wird.
- <zi>
- Macht alle Faltungen unsichtbar, bzw sichtbar, falls sie unsichtbar sind.
Alternativen zur Verwendung dieser Keybindings finden Sie unter Verschiedenes.
Verschiedenes
Wenn zeilenorientierte VIM-Kommandos auf eine geknickte Faltung angewendet werden, so wird dieses für jede Zeile innerhalb der Faltung ausgeführt. Das heißt, man kann mit <dd> eine Faltung samt Inhalt komplett löschen. Wenn im VISUAL-Modus eine Faltungslinie mitmarkiert wird, so ist automatisch der ganze Inhalt der Faltung markiert.
Alternativ zu den Keybindings unter Navigation kann man zum Öffnen oder Schließen von Faltungen auch die sogenannte Foldcolumn verwenden. Hier wird im VIM-Fenster eine beliebig breite Spalte reserviert, in der die Faltungen in Baum-Form visualisiert werden. Dies ist im Screenshot oben zu erkennen. Die Breite dieser Spalte wird in der Variable foldcolumn festgehalten. Sie wird automatisch aktiviert, sobald dieser Wert nicht 0 ist. Im obigen Screenshot wurde die Foldcolumn durch :set foldcolumn=3 aktiviert. Mit Hilfe dieser Spalte kann man nun Faltungen durch Klicken auf das vorangestellte oder - öffnen, bzw schließen.

