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


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

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

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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2006/11/04 23:18:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:dasm No.1

回答回数66ベストアンサー獲得回数0

ポイント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ベストアンサー獲得回数29

ポイント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に記載のコマンドをインストールすことにより動作させることができました。

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

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

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

回答リクエストを送信したユーザーはいません