vimを使用してC / C ++関数の最初の行に移動するには?

vimを使用してC / C ++関数の最初の行に移動するには?

C / C ++ソースコードのさまざまな要素間を移動できるコマンドセットはありますかvim?わかりました。ctagsしかし、これは限られた機能を提供します。

たとえば、C/C++ 関数の最初の行にジャンプし、関数内のどの行からも返すことは可能ですか?

私はコードをスキャンしたり、ソースコードからテキスト/パターンを検索したりするときに、現在の機能を見つけるために絶えず上にスクロールします。

答え1

コードがクラスのメソッドで構成されている言語では、[mメソッドの先頭に移動します。 C++ クラスでは問題はありませんが、C または C++ の最上位関数は、2 番目の最も外側のブロックの先頭に移動します。その他[{一番外側のスタンドに連れて行きます。

Cに似た構文を使用する言語では、{関数の先頭に1行のファイルから[[列 1 の前の中かっこに移動します。

~によるとCtrl-O戻ってください。

答え2

私が知っている限り、単純なvimコマンドを使用することは不可能です。

vimマニュアル(:helpセクション)から:

「]」および「[」コマンドは、最初の列の「{」または「}」で停止します。これは、Cプログラムで関数の始まりまたは終わりを見つけるのに役立ちます。

(...)

「{」または「}」が最初の列になく、まだ「[[」と「]]」を使用する場合は、次のマッピングを試してください。

:map [[ ?{<CR>w99[{ :map ][ /}<CR>b99]} :map ]] j0[[%/{<CR> :map [] k$][%?}<CR>


コードの向きを決めるために必要な場合は、折りたたみの使用を検討してください。たとえば、関数でキーを押すと、関数を閉じてset foldmethod=syntax関数名を表示し、関数を反転して元の行に戻すことができます。zCzO

もう1つのターゲティングの可能性はプラグインを使用することです。タブバー現在の機能が強調表示されます。

関連情報