35 howm-mode.vim (2-13) VimGrepSearch の修正
http://d.hatena.ne.jp/eclipse-a/20080115/1200375043 で書いた s:VimGrepSearch() にあった問題点を修正。
- :vimgrep の使用条件の確認を改善
- g:howm_dir の ~ の展開などができていなかった
- s:GrepSearch() と同様のメッセージ出力(howm Searching...)ができていなかった
" s:GrepSearch と同様の出力をする関数 " Vim7 以降にある内蔵 grep ( :vimgrep ) を使用する " " searchWord: Vim の正規表現 " TODO: HInr のうち I に対応できていない " TODO: &lazyredraw に意味があるか確認する " TODO: filename が若干違う function! s:VimGrepSearch(searchWord) if v:version < 700 || !has('quickfix') " TODO:エラーメッセージ return '' endif redraw! echo s:prefix_howm.s:msg_wait_search let searchPath = s:HowmExpand(g:howm_dir) let save_lazyredraw = &lazyredraw let &lazyredraw = 1 let save_qflist = deepcopy(getqflist()) silent! execute 'vimgrep /'. a:searchWord .'/gj '. searchPath .'**/*.*' let retval = join(map(getqflist(), "fnamemodify(bufname(v:val['bufnr']),':p:.:gs?\\?/?').':'.v:val['lnum'].':'.v:val['text']"), "\n") call setqflist(save_qflist) let &lazyredraw = save_lazyredraw return retval endfunction