朝寝して宵寝するまで昼寝して時々起きて居眠りをする
howm-helper を使って howm の検索を grep に任せることで以前よりもだいぶ早くはなったのですが、それでもやっぱりもたつきが気になるときがあります。
なのでちょっとアプローチ方法を変えて、howm ではなく HE-grep で howm のデータを検索してみることにしました。
HE-grep は Hyper Estraier という全文検索エンジンを使って Grep を行うための xyzzy 拡張 Lisp です。
検索エンジンがちがうだけで要は Grep なので、howm の検索とは別物です。
手順としては
という感じ。
xyzzy の Netinstaller から HE-grep をインストールします。手動でインストールする場合は、HE-grep.l のページからダウンロードしてください。
Hyper Estraier のホームページ からWindows版のバイナリパッケージ(例:hyperestraier-1.1.6-win32.zip )をダウンロードして適当なディレクトリに解凍し、そのディレクトリにパスを通します。(Windows XP の場合、マイコンピュータ右クリック - プロパティから「システムのプロパティ」を起動し、「詳細設定」タブの「環境変数」ボタンから、環境変数 Path にそのパス(estcmd.exe が存在するディレクトリのパス)を追加します(なければ新規作成))
Hyper Estraier はインデックスを使って全文検索を行うので、検索する前にインデックスの作成を行う必要があります。インデックスの作成は HE-grep の機能にあるのですが、そのための設定を .xyzzy (または siteinit.l)に記述します。
(setq *HE-make-index-command-list*
'(
(
"C:/casket"
"C:/bin/xyzzy/howm"
"estcmd gather -pc CP932 -ic CP932 -cl -fh -sd -cm"
"estcmd purge"
"estcmd optimize"
"howm(&h)"
)
作成したインデックスを使って検索するための設定を .xyzzy (または siteinit.l)に記述します。
(setq *HE-command-list*
'(
(
"howm(&h)"
"C:/casket"
"estcmd search -sf -ic CP932 -vh -max -1"
"C:/bin/xyzzy/howm"
)
))
xyzzy を再起動して、M-x HE-make-index と実行します。(M-x = Alt + x)ポップアップメニューが出てくるので howm を選択して、しばらく待つとインデックスの作成が完了します。
M-x HE-grep と実行して、ポップアップメニューが出てきたら howm を選択します(2度目以降は出てこない)。検索文字列を入力して Enter を押すと検索が実行されます。
grep を使うのと比べるとまぁまぁ速くなりました。grep だとコマンドプロンプトがぴょこっと出るだけでじーっとまたされますが、現在検索しているファイルがメッセージに表示されるので、体感速度がけっこうちがいます。
