当开始和结束标记相同时,如何自动折叠文件?

当开始和结束标记相同时,如何自动折叠文件?

我有一个用作节分隔符的纯文本文件-- >8 --,例如:

-- >8 --

first section
some content
more content

-- >8 --

second section
some content
more content

-- >8 --

为了更轻松地浏览文件,我想折叠标记之间的部分。我原以为这会很简单:

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

但它会导致嵌套折叠。

我发现我可以使用折叠表达式来实现这一点(见下面的答案),但这似乎有点过分。有没有更简单的方法来实现这一点?

答案1

我发现我可以使用折叠表达式来做到这一点:

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

截屏:

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

相关内容