search
LoginSignup
25

More than 5 years have passed since last update.

posted at

vimでgrepする時の.vimrc

vimさんgrep使えたんですね。人生の半分ぐらい損してました。
もう同じ損はしないようにvimrcに設定加えておきましょうね。

vimのgrepはここ見たらわかるよ
https://sites.google.com/site/fudist/Home/vim-nihongo-ban/vim-grep

加えた設定は以下

set grepprg=grep\ -rnIH\ --exclude-dir=.svn\ --exclude-dir=.git
autocmd QuickfixCmdPost vimgrep copen
autocmd QuickfixCmdPost grep copen

" grep の書式を挿入
nnoremap <expr> <Space>g ':vimgrep /\<' . expand('<cword>') . '\>/j **/*.' . expand('%:e')
nnoremap <expr> <Space>G ':sil grep! ' . expand('<cword>') . ' *'

これで検索したいワードにカーソル置いて<Space>gで内部grep、<Space>Gで外部grepの書式が挿入されるようになるね。

内部grep、vimgrepは遅いらしいけどバイナリファイルも検索対象として探してくれているので対象をしぼってやれば結構早くなる。expand('%:e')で現在開いているファイルの拡張子を取得してくれるのでよしなに書いてやる。

外部grepはset grepprg=にgrep用の設定を書き込んでやれば大体オッケー、.svn.gitディレクトリは除外、引数-rnIHは再起的に行数追加してバイナリファイルは除いてファイル名を表示かな。Hはいらないかもね。好みだね。ackも使えるみたいだよ。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
25