Ctagsや他の外部ツールを使用せずにコードベースをナビゲートするために、コマンドモードまたは検索モードでVimコマンド/クエリのツールボックスを収集しようとしています。Ctagはすばらしいですが、サポートは、行き詰まっている開発環境によって異なります。Vimの知識だけに依存したいと思います。
gd
です。これにより、カーソルがカーソルの下の変数のローカル宣言に移動します。
Ctagsや他の外部ツールを使用せずにコードベースをナビゲートするために、コマンドモードまたは検索モードでVimコマンド/クエリのツールボックスを収集しようとしています。Ctagはすばらしいですが、サポートは、行き詰まっている開発環境によって異なります。Vimの知識だけに依存したいと思います。
gd
です。これにより、カーソルがカーソルの下の変数のローカル宣言に移動します。
回答:
「検索を含める」はそのようなツールの1つです。
[I and ]I " search current buffer and included files for
" the word under the cursor, skipping comments
:ilist foo " same as above but for 'foo'
:ilist /foo " same as above but for a word containing 'foo'
「検索を含める」に関連して、「定義検索」も興味深いです。
[D and ]D " search current buffer and included files for
" the definition of the symbol under the cursor
:dlist foo " same as above but for definition of 'foo'
:dlist /foo " same as above but for a definition containing 'foo'
:dlist / " list all definitions from the current buffer
" and included files
どちらのツールも、ファイルタイププラグインによって設定される場合とされない場合があるさまざまなオプションに依存しています。
を参照してください:help include-search
。
また、使用することができるgd
とgD
の軽量バージョンなど[D
と]D
。
を参照してください:help gd
。
現在のバッファで、以下のコマンドはすべての関数定義とその行番号をリストします:
:g/func/#
を参照してください:help :g
。
:grep
そして:vimgrep
その結果がでナビゲートすることができるQuickFixリストにのみ供給されているのであれば、も有用であり:cn
、:cp
...と非常に便利なのQuickFixウィンドウに表示。
参照してください:help :grep
、:help :vimgrep
と:help quickfix
。
QuickFixリスト/ウィンドウといえば、私が書いたこの機能の結果を表示する(他人の仕事に基づいて)を[I
、]I
、:ilist
、[D
、]D
と:dlist
QuickFixリスト/ウィンドウでを。もちろんYMMV。
厳密にはナビゲーションツールではありませんが、プレビューウィンドウは、使用している関数のシグネチャを確認するのに非常に役立ちます。
を参照してください:help preview-window
。
つまり…
Vimは、コーディングスタイルなどに適合しない可能性があるいくつかの正規表現パターンを超えて、コードについて何も知りません。つまり、コードナビゲーションは、ctags、cscope、GNU GLOBALなどの外部ツールを使用して行う方が適切です。
(Vimと外部に含まれている)コードをナビゲートする方法はたくさんありますが、私はまだそれらを発見しています。私が日常業務で使用するものは次のとおりです。
gf
-commandで)Ctrl+O
、Ctrl+I
-ナビゲーションの「履歴」で前後にジャンプg;
-ファイルの最後に編集された場所にジャンプします'[some_letter]
コマンドでマークを付けることができます。文字が大文字の場合は、任意のファイル(バッファ)から到達可能なマークを取得できます。