2011-02-01 9 views
2

私はいくつかの同様の質問を見てきましたが、答えが分からなかったか、私の質問が彼らのものと異なっています。だから、プロジェクトには多くのサブディレクトリとさまざまな種類のファイルが含まれています。これらの.Cファイルのみの中から関数名を検索したいと思います。ディレクトリ下のcファイルの中からテキストを検索するには

「Esc x dired-do-query-replace-regexp」を使用することをお勧めします。しかし、これはCファイルだけでなく、私の場合helpfuleではない.elfのような他のファイルも検索します。他の人はTAG関数を使うことを勧めますが、不可能なすべてのサブディレクトリに対して "etags * .c"とタイプする必要があります。

大規模なソフトウェアプロジェクトではどうすればいいですか?

おかげ リー

+0

あなたがemacsを使っているという事実は、私があなたがLinuxを使っていると思うように思えます。これは本当ですか? – davogotland

+0

http://www.emacswiki.org/emacs/GrepMode –

+0

@davogotland:なぜですか?私は[Emacs on OS X](http://emacsformacosx.com)を使っています。私はWindows上でEmacsを使用しています(私が無意識のうちに何らかの理由でWindows上で作業するときはいつでも) –

答えて

3

Linux上でACK-grepを使用

ack-grep "keyword" -G *.c 
+0

ack(http://betterthangrep.com/)は素晴らしいです。デフォルトでは、再帰的なfind + grepを行います。バージョン管理ディレクトリやバックアップファイルを無視したり、バイナリファイルを無視することは--nobinaryと同じくらい簡単です。検索のフィルタリングは簡単で、拡張子のセットは単一の名前でグループ化できます(例: - [no] perlは.pl .pm .pod .tを除外または含める)。要するに、最小限の労力で、あなたが望むことをするのは簡単です。 – phils

+2

私は、Emacsの統合http://www.emacswiki.org/emacs/Ackを実際にチェックアウトする必要があることを思い出させます。私はいつも 'M-x rgrep'(私は検索したくないものを除外して扱います)を使用しました。 – phils

1

私のお気に入り:igrep-find、パッケージigrep.elで見つかりました。使い方は以下のとおりです。

M-x igrep-find some_thing RET *.C 

あり、grep-findに建てられたドキュメントhereだが、私は使用することが厄介見つけます。

さらに一般的な回答については、この類似の質問を参照してください。Using Emacs For Big Big Projects

1

Linuxの場合は、grepを使用して特定のテキストを含むファイルを見つけることができます。シェル/コマンドプロンプトで、emacsの外でこれを行います。ここでの素敵な構文は次のとおりです:

grep --color=auto --include=*.c -iRnH 'string to search for' /dir/to/search/ 

あなたがあなたの再帰的な検索のためのルートディレクトリとして使用するディレクトリにいる場合は、あなただけの全体のディレクトリアドレスをスキップすることができるように検索するディレクトリは、相対指定することができます1つのドットを指定します。

grep --color=auto --include=*.c -iRnH 'string to search for' . 

一部--color =自動は、一部のテキストがハイライトされます。 --include = * .cは、検索するファイルを指定する部分です。この場合、は、c拡張子のファイルのみです。フラグiは大文字小文字を区別しません。フラグRは検索を再帰的にし、フラグnは行番号をレポートに追加し、フラグHはファイルパスをレポートに追加します。あなたはcscopeとxcscope.el使用することができます

1

をとgrep、そこには、などfind . -name *.cに呼び出し文字列を変更することができますならば、それは機能してください好き。それからあなたは、例えば、 C-xなど。結果をナビゲートします。

1つのディレクトリ内のファイルの中から検索するには、lgrepを使用して、検索するファイルを指定するよう求められます。

0

で試してみてくださいはを変数dired:検索するディレクトリ名の場所にカーソルを、タイプとミニバッファにテキストが見つけること。

関連する問題