# go get github.com/mattn/jvgrep
というコマンドを実行するにはThe Go Programming Languageが必要だった。
しかも$GOROOT
$GOPATH
という意味不明な環境変数を設定しなければいけなかった。
さらに、それに使われているmahonia - Mahonia—a character-set conversion library for Go - Google Project Hostingを得るためには水銀の元素記号hgでおなじみ、もう一つのバージョン管理システムであるJapaneseMercurial - Mercurialが必要だった。
インストーラでインストールするのが嫌だったのでMercurial Cmd Portable 1.5.1 Development test 1 | PortableApps.com - Portable software for USB, portable and cloud drivesを適当なディレクトリに展開した上で、Mercurialにパスを通すことで対応した。
悲しいお知らせ
ここまで苦労して導入しても、Vimの'encoding'オプションを'utf-8'にしている場合、Windowsではなすすべもなく使えないらしい。
set grepprg=jvgrepにして:grepしたいのですが、日本語が通りません。
Vim側がutf-8で吐いた文字をコマンドプロンプトがcp932として呼んでしまうからですが、解消する方法を知りませんか?
http://lingr.com/room/vim/archives/2013/12/05#message-17739621
絶望
つまり現状ではコマンドプロンプトを使うのをやめるか、qfixgrepを使うしか解決策がないわけですね。
http://lingr.com/room/vim/archives/2013/12/05#message-17740433
qfixgrepは余計なことを色々しているから好きにはなれないのですが。
光明
qfixgrepの中身を見てみたが、つまり最悪、外部コマンドに渡すときにiconv()でエンコードを変換してやれば何とか出来るっぽい。
http://lingr.com/room/vim/archives/2013/12/05#message-17740591
おし。
http://lingr.com/room/vim/archives/2013/12/05#message-17740802
exe 'grep '. iconv('ファイル', 'utf-8', 'cp932'). ' %'だと正常機能した。
つまり渡すときエンコードしてくれるラッパーコマンドを定義してそれを使えば当面は解決できる問題になった。