cscope の最小限の例
Ingo が言及しました。例を次に示します。
まず、 .vimrc
に設定する必要があります :
set cscopequickfix=s-,c-,d-,i-,t-,e-
次に、プロジェクトのベース ディレクトリに移動して実行します。
cscope -Rb
これは cscope.out
を生成します 解析された情報を含むファイル。 Linux カーネルのような大規模なプロジェクトであっても、生成はかなり高速です。
vim を開いて実行:
:cs add cscope.out
:cs find c my_func
c
callers
のニーモニックです .他の cscope
クエリも可能であれば、ニーモニックは以下にリストされています:
help cscope
これにより、発信者のリストがクイックフィックス リストに追加されます。このリストは次の方法で開くことができます。
:copen
興味のある行に移動し、Enter キーを押してそこにジャンプします。
現在カーソルの下にある関数名の呼び出し元を見つけるには、 .vimrc
に追加します :
function! Csc()
cscope find c <cword>
copen
endfunction
command! Csc call Csc()
:Csc<enter>
と入力します カーソルが関数の上にあるとき。
TODO:
- カーソル下の現在の関数に対して、1 つのコマンドで実行します。関連:ステータス行に関数名を表示
- ファイルを入力すると、最も近いデータベース (親ディレクトリ) が自動的に追加されます:vim で cscope.out を自動ロードする方法
- Eclipse のようにコール グラフをインタラクティブに開きます。関連:cscope データベースからコール ツリーを生成する
アドバイス:私は vim が大好きですが、この種のものをセットアップするには複雑すぎます。また、クラスなどは考慮されません。 C++で。プロジェクトがあなたにとって十分に重要である場合は、プロジェクトを何らかの「IDE」で動作させるようにしてください。プロジェクトが IDE 構成ファイル (リポジトリを汚染する自動変更ブロブ) を追跡しない場合、オーバーヘッドが発生する可能性がありますが、私にとってはそれだけの価値があります。 C / C++ の場合、これまでのところ私のお気に入りは KDevelop 4 です。
そのために、Vim は cscope と統合します 道具; :help cscope
を参照 詳細については、