Como posso dobrar automaticamente um arquivo quando os marcadores inicial e final são iguais?

Como posso dobrar automaticamente um arquivo quando os marcadores inicial e final são iguais?

Eu tenho um arquivo de texto simples que usa -- >8 --como separadores de seção, por exemplo:

-- >8 --

first section
some content
more content

-- >8 --

second section
some content
more content

-- >8 --

Para navegar mais facilmente no arquivo, quero dobrar as seções entre os marcadores. Eu esperava que fosse tão fácil quanto:

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

Mas isso resulta em dobras aninhadas.

Descobri que posso usar uma expressão dobrável para conseguir isso (veja a resposta abaixo), mas parece um tanto excessivo. Existe uma maneira mais simples de fazer isso?

Responder1

Descobri que posso usar uma expressão dobrável para fazer isso:

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

Captura de tela:

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

informação relacionada