Vimで一発Grep

Vimは超強力なエディタだけどgrepするのが辛いと思ってた。

:vimgrep hogehoge *.[ch]

やっぱり辛い。

$VIM/vimrc

" grでカーソル下のキーワードをvimgrep

nnoremap <expr> gr ':vimgrep ;\<' . expand('<cword>') . '\>; **/*.[ch] \| cw <CR>'
nnoremap <f2> :cprevious<CR>
nnoremap <f3> :cnext<CR>

今のところ対象は.cと.hだけ。
これでいつでもgrでgrepできる。

grepしたら F3で次を検索、F2で前を検索

上位のフォルダで検索かけちゃったとき延々とgrepし続けちゃうのは嫌だなぁ..