読者です 読者をやめる 読者になる 読者になる

[mac][emacs] EmacsからC/MigemoをUTF-8で使う

Emacs環境をUTF-8化してからしばらく経ちますが、Migemoの辞書は未だにEUC-JPであるのでこの際UTF-8化しておこうと思ったのでメモしておきます。

C/Migemoのインストール

今回はUTF-8にも標準で対応しているC/Migemoの1.3開発版を使用します。http://www.kaoriya.net/dist/var/cmigemo-1.3c.tar.bz2
1.2まではUTF-8に対応していません。上記のファイルをダウンロードしてきて、解凍。

$ tar xvf cmigemo-1.3c.tar.bz2 

マニュアルはきちんと読みましょう。基本です。日本語ならdoc/README_j.txtにあります。
今回はosxにインストールするので、マニュアルに従って作業します。

$ ./configure && make osx && make osx-dict

最後のosx-dictが辞書ファイルのビルドなのですが、このままだと、EUC-JPしかインストールできないのでutf-8の辞書ファイルも作っておきます。(ここはマニュアルには書いていません。)

$ cd dict
$ make utf-8

後はroot権限でインストールをします。

# make osx-install

Emacs側の設定

migemo.elの準備

2010/9/8追記:
id:tomoyaさんがmigemo.elを用意してくれているようなのでこちらを使いましょう。というわけで、下のpatchは不要です。http://gist.github.com/457761

実はC/Migemoを使う場合も、C/Migemoにはmigemo.elが含まれないので、emacsから使用するには本家のMigemoをダウンロードする必要があります。http://0xcc.net/migemo/migemo-0.40.tar.gz
これを解凍して、./configure && make && make installする必要があるのですが、Ruby/Romkanや、Ruby/Bsearchが必要になり、大変面倒です。欲しいのはmigemo.elだけなのでここまで大げさなことをしたくありません。そこでpatchを用意しました。migemo.el.inに当ててください。
http://gist.github.com/567207

$ patch migemo.el.in < migemo.patch
$ mv migemo.el.in migemo.el

上記のpatchではmigemo-directory "/usr/local/share/migemo"で決めうちしているのでC/Migemoを別のところにインストールした方は利用できません。このmigemo.elをパスの通った場所へ移動させておきます。

.emacs側の設定

次はemacs側の設定です。

(require 'migemo)
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs"))
(setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict")
(setq migemo-user-dictionary nil)
(setq migemo-regex-dictionary nil)
(setq migemo-coding-system 'utf-8-unix)
(load-library "migemo")
(migemo-init)

(setq migemo-coding-system 'utf-8-unix)が重要でここで明示的にutf-8を指定してあげなければ正しく動作しないので注意が必要です。