
У меня есть простой текстовый файл, который использует -- >8 --
разделители разделов, например:
-- >8 --
first section
some content
more content
-- >8 --
second section
some content
more content
-- >8 --
Чтобы было легче ориентироваться в файле, я хочу сложить разделы между маркерами. Я ожидал, что это будет так же просто, как:
set foldmethod=marker
set foldmarker=--\ >8\ --,--\ >8\ --
Но это приводит к образованию вложенных складок.
Я обнаружил, что могу использовать fold-expression для достижения этого (см. ответ ниже), но это кажется довольно излишним. Есть ли более простой способ сделать это?
решение1
Я обнаружил, что для этого можно использовать выражение свёртки:
set foldmethod=expr
set foldexpr=(getline(v:lnum)=='--\ >8\ --')?1:2
Скриншот:
- -- >8 --
|++--- 5 lines: first section------------------------------------------------
| -- >8 --
|++--- 5 lines: second section-----------------------------------------------
| -- >8 --