複数のファイル、ディレクトリ、およびサブディレクトリを含む大きなプロジェクトに取り組んでいるとします。これらのディレクトリ/サブディレクトリ/ファイルのいずれかでメソッドを定義しましたが、プロジェクト全体のどのファイルがメソッドを呼び出しているかを正確に知りたいとします。これどうやってやるの?
2 に答える
あなたはgrepについて言及したので、このソリューションを公開します。より堅牢なソリューションは、Fibbeが提案したバージョン管理システムを実装することです。
find . -exec grep 'method_name' {} \; -print 2> /dev/null
アイデアは、現在のディレクトリとサブディレクトリにあるファイルごとに、そのファイルに対して「method_name」のgrepが実行されるというものです。2> /dev/null
アクセスできないすべてのディレクトリとファイルについて警告を受けたくない場合は、これが便利です。
これを行う最も一般的な方法は、エディターを使用することです。たとえば、etags を使用してタグ インデックスを作成すると、emacs でこれを実行できます。
ソース: http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/etags.html
M- と入力するだけです。アクセスしたい関数の名前を入力すると、emacs がそこに移動します。
どのシステムまたはどのエディターを使用しているかはわかりませんが、ほとんどのエディターには同様の機能があります。
emacs を使用しない場合、関数を追跡し、他の多くの優れた機能を取得するための別の良い方法は、バージョン管理システムを使用することです。git と同様に、非常に高速な検索を提供します。
バージョン管理システムを使用していない場合は、検索専用に設計されたプログラムを検討することをお勧めします。OpenGrok のように。