私は、cファイル用に非常にコンパクトなトップレベルフォールディングを作成するシンプルなVimスクリプトを作ろうとしています。それは、このコードで実行された場合には理想的には、:だから、基本的には折り畳みレベル= 1でfoldmethod =構文のようになるVimでのコンパクトCの折りたたみ
+-- x Lines: static void funca(...)----------------------
+-- x Lines: static void funcb(...)----------------------
:
static void funca(...)
{
...
}
/* Example comment */
static void funcb(...)
{
...
}
そして、それが閉じられたときに次のようになり折り目を作成しますただし、各折り目は1行上にさらに上がり始め、さらに下に伸びて次の空白行をすべて含むようになります。
私は(foldmethod =マニュアルを想定して)これらの折り目の1を作る方法を知っている:
/^{<cr>kVnn?^$<cr>zf
しかし、私は、関数に入れてするかどうかはわかりません。これは私の努力です:
function Cfold()
set foldmethod=manual " Manual folds
ggzE " Delete all folds
while (/^{<cr>) " Somehow loop through each match
kVnn?^$<cr>zf " This would work fine except for the last function
endwhile
endfunction
map <Leader>f :call Cfold()<cr>
しかし、それは有効ではありませんが、私は機能の仕組みが完全にはわかりません。また、 '^ {'が再び見つからないので、ファイル内の最後の関数では機能しません。誰かがこの作業を手助けして、何らかの形でファイル内の最後の機能のケースを追加すると、私は非常に感謝しています。事前に
感謝:)
ありがとうございました:)それはまさに私が探していたものでした。それは少し変更が必要でしたが、私はそれがほしいと思う方法で働いていて、最終的に私のCプロジェクトからマーカーを取り除くことができます。 非常に高く評価されています。 –
こんにちは、あなたはあなたの微調整バージョンを共有できますか?ありがとうございます –
うーん...私は上記のvimコードを試してみましたが、関数の上に複数行のコメントでうまく動作しません... – chutsu