Wie kann ich eine Datei automatisch falten, wenn Start- und Endmarkierungen identisch sind?

Wie kann ich eine Datei automatisch falten, wenn Start- und Endmarkierungen identisch sind?

Ich habe eine reine Textdatei, die -- >8 --als Abschnittstrennzeichen verwendet, z. B.:

-- >8 --

first section
some content
more content

-- >8 --

second section
some content
more content

-- >8 --

Um die Navigation in der Datei zu erleichtern, möchte ich Abschnitte zwischen Markierungen zusammenfalten. Ich hatte erwartet, dass das so einfach wäre wie:

set foldmethod=marker
set foldmarker=--\ >8\ --,--\ >8\ --

Es entstehen jedoch verschachtelte Falten.

Ich habe herausgefunden, dass ich dazu einen Fold-Ausdruck verwenden kann (siehe Antwort unten), aber das scheint ziemlich übertrieben. Gibt es eine einfachere Möglichkeit, dies zu tun?

Antwort1

Ich habe herausgefunden, dass ich hierfür einen Fold-Ausdruck verwenden kann:

set foldmethod=expr
set foldexpr=(getline(v:lnum)=='--\ >8\ --')?1:2

Bildschirmfoto:

- -- >8 --
|++---  5 lines: first section------------------------------------------------
| -- >8 --
|++---  5 lines: second section-----------------------------------------------
| -- >8 --

verwandte Informationen