Jak mogę automatycznie złożyć plik, gdy znaczniki początkowy i końcowy są takie same?

0

Mam zwykły plik tekstowy, który używa -- >8 --jako separatorów sekcji, np .:

-- >8 --

first section
some content
more content

-- >8 --

second section
some content
more content

-- >8 --

Aby łatwiej nawigować po pliku, chcę złożyć sekcje między znacznikami. Spodziewałem się, że będzie to tak proste, jak:

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

Ale powoduje zagnieżdżenie fałd.

Przekonałem się, że mogę to zrobić za pomocą wyrażenia krotnie (patrz odpowiedź poniżej), ale wydaje się to raczej przesadne. Czy istnieje prostszy sposób na zrobienie tego?

Thor
źródło

Odpowiedzi:

2

Odkryłem, że mogę użyć do tego wyrażenia składanego:

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

Zrzut ekranu:

- -- >8 --
|++---  5 lines: first section------------------------------------------------
| -- >8 --
|++---  5 lines: second section-----------------------------------------------
| -- >8 --
Thor
źródło
1
Tak też bym to zrobił. Nie wygląda mi to na przesadę .
Ingo Karkat
@IngoKarkat: Myślę, że masz rację, właśnie wpadłem na pomysł, aby zrobić fold-marker. Dzięki.
Thor