2010年2月23日火曜日

Migemo + minibuf-isearchで起きるエラーの回避方法

EmacsでMigemominibuf-isearchを一緒に使っていると、

Invalid regexp: "Regular expression too big"

のようなエラーが出ることがあるのだけど、もう一度ゆっくり入力し直せば正常に動作するので、これまでだましだまし使ってきた。しかし、今日はこのエラーに対して急に我慢ならなくなり、解決方法を探したところ

(setq migemo-isearch-min-length 2)

または

(setq minibuf-isearch-use-migemo nil)

とすればいいらしいことがわかった。前者はMigemoのisearchを開始する文字数を2に指定してエラーを回避する(1文字目からだと正規表現が大きすぎる)。後者はそもそもminibuf-isearchでMigemoを使用しないようにする。

Ubuntuのパッケージだとmigemo-isearch-min-lengthに対応していないので、後者を採用してminibuf-isearchのときはMigemoをオフにするようにした。minibuf-isearchはsession.elと組み合わせてファイルを開くときに使うことがほとんどで、自分は日本語のファイル名を使うことがないので特に問題はない。

migemo-isearch-min-lengthを使う場合は最新版をCVSからインストールする必要がある。

参考