46 howm-mode.vim (2-23) GrepSearch で空白を含むパスをうまく扱えないのを修正

36 http://d.hatena.ne.jp/eclipse-a/20080206/1202262122
44 http://d.hatena.ne.jp/eclipse-a/20080212/1202817998

で書いてきた GrepSearch にさらに修正を加える。例の patch を友人にあててもらったところ、うまく動作しなかった。原因は g:howm_dir の ~ が win32 環境のデフォルトで c:\documents and settings として展開される(空白パスを含む)ため。それによって vimgrep が期待した動作をしなくなる。それに関する修正を加えた。

    let save_lazyredraw = &lazyredraw
    let &lazyredraw = 1
    let save_qflist = deepcopy(getqflist())
    silent! execute 'vimgrep /'. searchWord .'/gj '. escape(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

変更は一行。 vimgrep の行に escape() を使って空白をエスケープするようにした。前後三行を表示してみた。

patch の配布場所が決まったぽいので、もうすこし友人にテストしてもらったら公開します。