Ein geniales Feature in Vim ist das Folding. Damit kann man bestimmte Regionen ausblenden. Das ist beim Programmieren hilfreich, damit man nicht so schnell den Überblick verliert. So kann man zum Beispiel nicht benötigte Funktionen ausblenden und sich nur auf das relevante konzentrieren.
Das geniale dabei ist, man kann flexibel definieren was ausgeblendet wird. Die zu verwendende Method kann mit set foldmethod festgelegt werden. Dabei hat man die Wahl zwischen manual,indent, expr, marker, syntax und diff.
Am einfachsten ist das "Manuelle Folding": Einfach die zu zusammenklappende Funktion markieren (z.B. mit Shift-V) und dann zf drücken. Mit zo kann man den Fold wieder öffnen. Mit zd löschen und mit zc wieder zuklappen.
Bei indent werden Regionen, die gleich eingerückt werden zusammengeklappt.
Mit expr kann man eine Expression festlegen, die die zusammenklappende Region festlegt. Um zum Beispiel alle Leerzeile getrennten Absätze zusammen zuklappen, legt man noch
CODE:
:set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
fest.Mit diff kann man für den diff Modus von Vim die zusammenzufassenden Regionen festlegen. Das sieht man z.B. wenn man mittels vimdiff 2 Dateien vergleicht.
Mit syntax werden spezielle syntax highlighting items genutzt, um Folds zu spezifizieren.
Ich find aber marker am simplesten zu verwenden. Dabei werden spezielle Marker verwendet, um den Start und das Ende einer Fold Region zu markieren. Dafür werden normalerweise die Zeichen '{{{' am Anfang und '}}}' am Ende benutzt. Ein Beispiel verdeutlicht das vielleicht am besten:
/* greet - prints "Hello World" to stdout */ /*{{{*/
/* in: no arguments */
/* out: no return value */
/*}}}*/
void greet (void)
{
printf("Hello World!\n");
return;
}
main()(int argc, char *argv[]){/*{{{*/
int i;
for (i=0;i<10;i++){
greet();
}
return 0;
}/*}}}*/
Zunächst wurde :set foldmethod=marker gesetzt. Dann wurden die Regionen mit Shift-V markiert und mit zf als Fold Regionen festgelegt. Wie man sieht werden die Marker durch die entsprechenden Kommentarzeichen "versteckt". Optional ist nach den Markers noch die Angabe von einem Level, aber das steht auch in der Hilfe.
Wenn man dann die Datei mit vim wieder öffnet, erkennt er automatisch die folds und klappt sie automatisch zusammen. Das sieht dann so aus:

Das hier war nur ein kurzer Abriss. Wie immer lohnt sich die Hilfefunktion von Vim und hier speziell: :h folding

Die von Dir preferierte marker-Methode hatte mich zwischendurch auch sehr überzeugt, doch mittwerweile stühren mich die zusätzlichen Zeichen. Aus diesem Grund habe ich begonnen, genauere Infos zu vim's Möglichkeit zu Dateien Metadateien zu speichern.
Dadurch kann man dann manuell Foldings setzten, die dann nicht nach dem schließen der Datei wieder verloren gehen. Solltest Du wissen, wie es geht, dann würde ich mich natürlich freuen. Es würde mir viel Zeit sparen.
Die expressions wären sicherlich hilfreich, aber der Umfang erschlägt mich und hat mich immer abgeschreckt. Ist ja kein Wunder, man kann damit ja auch prima programmieren...