vimの折りたたみ機能を作成する方法 - Foldmethod = syntaxを使用するとき - すべての関数、if-else、およびstruct(Goを使用)の後の改行も非表示にします。
答え1
Cで行う方法は次のとおりです。
- 元の構文ファイル(Unixでは通常はにあります
/usr/share/vim
)をインポートして(再びUnixでは)コピーします~/.vim/syntax
。 - cBlock領域定義で「終了」モードを変更します。
syntax region cBlock start="{" end="}" transparent fold
~になる
syntax region cBlock start="{" end="}\(\n\n\)\?" transparent fold
ここで、最初は\n
閉じ括弧の直後にある改行文字と一致し、2番目は空行と一致します。後ろにコメントがあると機能しません}
。ブロックはまだ崩壊しますが、次の改行文字は崩壊しません。
(私が知っている)Goの構文文書はありませんが、同じように動作するはずです。
注:より柔軟なアプローチは、新しいファイルを作成して~/.vim/after/syntax
ゾーン定義のみを変更することですが、ここでは成功しませんでした。領域定義をコピーするだけでは機能しません。