与えられた関数を含むすべてのファイルを見つける方法は?

与えられた関数を含むすべてのファイルを見つける方法は?

関数を含むすべてのファイルを一覧表示しようとしていますmatrixCal

Linuxでこれを行うにはどうすればよいですか?

答え1

グレブは大丈夫ですか?

grep -R matrixCal /location/of/your/code

答え2

あなたはこのプログラムに興味があるでしょうack。これは、ソースコードディレクトリを検索し、読みやすい形式で便利なコンテンツを返すように特別に設計されています。基本的に同じことを行いますgrepが、より使い慣れた形式です。

答え3

伝統的なアプローチは、ソースコードに関数と変数定義のインデックスを作成し、エディタを使用してインデックスを取得することです。従来の索引付けコマンドは次のとおりです。ctagstagsviで利用可能なファイルを作成します。 Emacsは次の機能を提供します。etags注文する(ファイル名はTAGS)。

たとえば、Cソースツリーの場合は、次のようにTAGSEmacs用のファイルを生成できます。

find -type f -name '*.[hc]' -exec etags {} +

Subversionでチェックアウトされた大規模なソースツリーの場合、ここに2つの改善点があります。.svnディレクトリを無視し、長すぎてコマンドラインの長さ制限を超えることができないファイル階層を処理します(各連続呼び出しがetags最初からドキュメントから書き換えられるため、ファイルは切り捨てられます)。 )。

: >TAGS
find -type d -name .svn -prune -o \
     -type f -name '*.[hc]' -exec etags -a {} +

その後、Emacsで一度実行してファイルをM-x visit-tags-table選択します。TAGS単語の上にカーソルを置き、()をmatrixCal押して定義に移動します(必要に応じて定義を含むファイルを開きます)。発生の間を繰り返すには、を実行して入力して1つの発生に移動し、()を使用して次の発生に移動します。バッファでは、シンボルが使用される場所の概要が提供されます。M-.find-tagM-x tags-search^matrixCal$M-,tags-loop-continueTAGSM-x occur RET matrixCal RET

関連情報