開始マーカーと終了マーカーが同じ場合にファイルを自動的に折りたたむにはどうすればよいですか?

開始マーカーと終了マーカーが同じ場合にファイルを自動的に折りたたむにはどうすればよいですか?

セクション区切りとして使用するプレーンテキスト ファイルがあります-- >8 --。例:

-- >8 --

first section
some content
more content

-- >8 --

second section
some content
more content

-- >8 --

ファイル内をより簡単に移動するために、マーカー間のセクションを折りたたみたいと思います。次のように簡単にできると思っていました。

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

しかし、その結果、折り畳みがネストされます。

これを実現するには、折り畳み式を使用できることがわかりました (以下の回答を参照) が、これはかなり過剰であるように思われます。これを行うより簡単な方法はありますか?

答え1

これを実行するには、fold 式を使用できることがわかりました。

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

スクリーンショット:

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

関連情報