73 howm-mode.vim (2-40) Windows 環境で grep を使う

Windows 環境で grep を使いたい場合、cygwingrep を使うものと勝手に思いこんでいた。だから、今回のコメントはちょっとした驚きだった。

GnuWin32 Packagesのgrepを試してみた

まあ、ただおどろいていても仕方がないので GnuWin32 Packages の grep にも howm-mode.vim で対応できるか確認してみた。

実行してみると dll をいくつか求められる。上記URLからダウンロード可能なので探すと良い。自分の場合は、libintl3.dll, libiconv2.dll, pcre3.dll を求められた。それぞれ以下のURLからダウンロードした。バージョンは libintl が 0.14.4, libiconv が 1.9.2-1, pcre が 7.0 だった。

コメントで書かれていた 2.5.1a-2 を試してみたが、なにやら動作がおかしい。2.5.1a-2 では -i ( --ignore-case ) が -F ( --fixed-strings ) 以外で効かないっていうすごいことになっている。

2.5.1a で動かしてみたところ、正常動作を確認できたので、こちらを使った方がいい。

なお pcre.dll を求められると思うが、上記 pcre3.dll をリネームしてやれば、それで動作した。

ついでにSFUgrepも試してみた

ついでなので、ある意味で Windowsgrep の本家とも言える Microsoft 提供版の grep も試してみた。Microsoft Windows Services for UNIX 3.5 ( 通称 SFU )。

こちらは file の指定にワイルドカードが使えないようなので、現在の howm-mode.vim では対応できないことが分かった。対応する気はない。

最後に

howm-mode.vim 狙えバージョンでは基本的に vimgrep での動作を前提としている。,g などの動作は本家側の動作を残しているだけで、,v を使うことをお勧めしたい。

理由としては ,g ではどんな正規表現が使えるのかが曖昧になるし、Vim正規表現と異なるものの場合にハイライトなどがおかしくなるからだ。実装側の事情ではあるが、vimgrep を使う方が移植性の面で有利だと思っている。自分は普段Windowsを使用しているので、grep.exeやらmigemo.exeを新たにインストールしたりするのは面倒。Vim (Kaoriya版) と _vimrc と howm-mode.vim をコピーすれば動くのを理想にしている。

がんばれ俺。