vimで指定したディレクトリに対して再帰的にgrepを行うにはどうしたらよいのでしょうか?


一致したキーワードの行一覧を表示し、一覧表示した後は、gfコマンドで該当のファイル(該当ファイルの行)へジャンプしたいと思っています。

grepに関して、便利なvimスクリプトや設定やTipsなどありましたら知りたいです。

windowsではgvim6.3、Linuxではvim6.3を使用しています。

回答の条件
  • 1人5回まで
  • 登録:2006/10/29 21:10:38
  • 終了:2006/11/04 23:18:40

回答(2件)

id:dasm No.1

dasm回答回数66ベストアンサー獲得回数02006/10/30 11:20:15

ポイント35pt

Windows の場合は

grep /S pattern files

Linux (UNIX) では

grep -r pattern files

で再帰的に grep できます。

結果は、:copen で表示できます。

参考:

http://pinna.cside4.jp/tips/vim/search.html#GREP

http://pcmania.jp/~moraz/howto/regex.html#recursive_grep

id:guyon

ご質問どおりの期待結果を得ることができました。どうもありがとうございました。

2006/10/30 22:05:30
id:ttamo No.2

たも回答回数175ベストアンサー獲得回数292006/10/30 11:27:21

ポイント35pt

Google で "vim recursive grep" と検索したら、これが最初に出ました。

grep.vim - Grep search tools integration with Vim : vim online

実際に :Rgrep と打ってみたら、検索パターン、ディレクトリ、ファイル名パターンを訊かれて、結果が一覧表示されました。

gf っていうか、結果のファイル名の上でリターンキーを押せば、そのファイルの該当行にジャンプします。

これは便利ですね。良い質問をありがとうございます。

id:guyon

ご回答ありがとうございます。

対話的にGrepを行うことができて良い感じです。GrepBufferコマンドでバッファをGrepできるのも魅力的です。Linuxのvimでは動作確認をとることができたのですが、winのgvimではgnu Grepやfindもインストールしたり、grep.vimの設定をしてみたりもしましたが、エラーが発生してRgrepコマンドが実行できませんでした。

普段はgvimの方がよく使うので、なんとか使えるようにしたいです。

grep.vimはディレクトリ指定の時に、タブ補完ができないことだけが残念です。

2006/10/30 23:01:23
  • id:guyon
    windows版gvimでもgrep.vimに記載のコマンドをインストールすことにより動作させることができました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません