2007-08-21

Emacs 22で日本語isearchをするときはMule-UCSが邪魔

先月emacs22がportsの標準となったので、今月になって手元のマシンでもアップデートしたが、特に問題も見当たらず順調に動いていた。しかし、編集していたファイルで、たまたま日本語のサーチをしたくなり、isearchで日本語を入れたところ、

I-search: [か] あ [(error Invalid character: 131072, #o400000, #x20000)]
のようなエラーが出て、目的のサーチが一切できなくなっていた。

見てのとおりSKKの環境でもあるので、考えられる原因が複数あり、とりあえずエラーメッセージでググる。出てきたのは、Meadowのtrac内のバグ報告と、メーリングリストの記事

バグ報告の方は、同様にSKKを使っている場合のようで、Mule-UCSをはずすととりあえず回避できるとある。そういえば、Emacs 22はUnicodeをきちんとサポートしているので、Mule-UCSの機能とかぶるような気もする。そのあたりが原因か?で、~/.emacs内のjisx0213をrequireしてる部分をコメントアウトしてみたら、たしかに問題なくサーチできるようになった。

その後いろいろ試すと、ファイルのcoding-systemにも依存するようで、sjisだと問題が起きない。eucだと確実に起きる。jisだと最初は問題ないが、一度問題が出るとその後も出るという感じ(正確ではないかも)。

メーリングリストの記事では、euc-jisx0213がどうのと書かれているので、やはりeucに関係があるのか。しかし、それに続くスレッドでは、Mule-UCSがなくても同じ問題が発生する手順が示してあり、Emacs 22でも同様の結果になった。

当面の使用では、Mule-UCSをはずしておけば問題は発生しないだろうが、ちゃんと直ってほしいところ。あと、Emacs 22ならMule-UCSって使わなくても済むのかな。

0 件のコメント: