12. Folding

Als je met tekst documenten of source bestanden werkt dan is het prettig indien het gedeelte waaraan je op dat moment werkt op je scherm past. Vaak is het echter nodig om te scrollen omdat er te veel tekst tussen de 2 interesante stukken staat. Folding bied hiervoor een oplossing. Zou je de term "Folding" vertalen dan krijg je "vouwen". En dat omschrijft deze functie zeer goed. Wat je met deze functie namelijk doet is een geselecteerd stuk tekst in je document opvouwen tot 1 beschrijvende regel.

Nadat je een stuk tekst geslecteerd hebt (zie ook: Paragraaf 9) geef je het commando "zf". Het gelecteerde stuk tekst wordt vervolgens opgevouwen tot 1 regel, de eerste regel van het blok wordt gebruikt als beschrijving. Dit ziet er ongeveer zo uit:

+--  5 lines: En dit staat op de eerste regel ------------------------------

Het stuk tekst wat je wilt opvouwen kan zelfs een al eerder opgevouwen stuk tekst bevatten. Door gebruik te maken van "Folding" zou je in een source bestand bijvoorbeeld de functies waaraan je niet werkt op dat moment even aan de kant kunnen zetten. Zodoende leiden ze je ook niet af.

Opvouwen is wel leuk natuurlijk. Maar uiteindelijk moet je het ook weer een keertje uit pakken. Dit gaat het gemakkelijkst met de toetscombinatie "zo", maar kan ook door naar edit mode te gaan terwijl de cursor op de fold staat.

Uiteraard zijn er meer methoden om te folden en un-folden.

Default staat de foldmethod "manual" ingesteld. Erg handig in het gebruik is echter ook de foldmethod "marker". Vim maakt in dat geval zelf de folds aan van de ene marker tot de volgende marker. Neem het volgende voorbeeld:

# Functies		{{{1
# Function Return 1	{{{2
sub Return_1{
  return 1
}
# Function Return 2	{{{2
sub Return_2{
  return 2
}

Bovenstaand voorbeeld bevat 3 folds:

Zou je nu in 1 van de delen het sluit commando geven (met de toetscombinatie "zc"), dan sluit de fold zich tot aan het begin van de volgende fold. Je kan een fold ook expliciet beeindigen met "}}}1" of "}}}2".

Zou je de opdracht "set foldmethod=marker" in een modeline zetten, dan opent het bestand met alle folds ingeklapt. Modelines worden uitgelegd in Paragraaf 14

12.1. Help commando's.