最終更新日 2004/03/10(Wed)
[HOME] / [Emacs] / Migemo

Migemo


Emacs にある機能のインクリメンタルサーチは非常に便利ですが、 日本語で行なおうとすると、 入力→変換→サーチという手順になるのであまりお手軽ではありません。

Migemo はローマ字入力で日本語の文章をインクリメンタルサーチする優れものです。 しかも、さらに以下のようなことも出来たりします。


必要となるもの

Meadow / Emacs
Meadow 2 でも動作しております。
APEL
必要らしいです。
Ruby
Migemo は Ruby で書かれています。 (1.6 以降対応)
Ruby/Bsearch
バイナリサーチをするための Ruby のライブラリです。
Ruby/RomKan
ローマ字<->かなを相互変換する Ruby のライブラリです。
Migemo
Migemo 本体です。現在のバージョンは 0.40 です。 migemo コマンドおよび Emacs から操作するための elisp が含まれます。

Migemo のインストール

以下の説明は Cygwin が既にインストールされていること を前提にしています。

APEL のインストール

まずは APEL をインストールしましょう。 方法については別のページに書いています。

Ruby のインストール

Windows では Ruby のバイナリパッケージは 3 種類 (Cygwin, Mingw, MSVC)存在します。 このページの説明は、 Cygwin 版をインストールすること を前提としています。他のバイナリでは設定が若干異なるかもしれません。

Cygwin 版を利用する場合のインストールは簡単です。 Ruby は Cygwin のパッケージに組み込まれていますので、 Cygwin の setup.exe を実行して、ruby パッケージをインストールしてください。 自力でインストールする場合は、 Ruby インストールガイド を参考にしてください。

Ruby/Bsearch のインストール

パッケージを展開して、ファイル bsearch.rb をコピーします。

$ cp bsearch.rb /usr/lib/ruby/site_ruby

site_ruby ディレクトリがない場合は作成しておきましょう。

Ruby/Romkan のインストール

パッケージを展開して、ファイル romkan.rb をコピーします。

$ cp romkan.rb /usr/lib/ruby/site_ruby

Migemo のインストール

以下のように configure スクリプトを実行した後 make で作成できます。 (Meadow のインストールパスに応じて適当に修正しましょう)

$ configure --with-emacs=d:/usr/local/Meadow/1.15/bin/MeadowNT.exe \
$  --with-lispdir=d:/usr/local/Meadow/1.15/site-lisp
$ make
$ make install

これでインストール完了です。

なお、 0.32 までは migemo スクリプトの修正が必要でしたが、現在はそのまま利用できます。

Migemo の動作確認

.emacs の設定に移る前に Migemo の動作確認をします。

migemo コマンドが起動するかどうかの確認

下記のようにコマンドを実行すると入力待ちになりますので、 何か適当なアルファベットを入力してみましょう。 すると、変換結果が出力されます。 以下はシェルから migemo コマンドを実行し、 mig と入力した場合です。

$ migemo /usr/local/share/migemo/migemo-dict
mig
[)」』】>→⇒右研三汀頻磨砌]|3[つ日]|mig|3[つ日]|mig|み[がぎぐげごっ]|マイ
グレ(ー(ト|ション)|イ(ト|ション))|ミ[ガギグゲゴッ]|移送|見([苦頃殺事柄]|応え)|身
([軽構代柄]|固め|勝手|拵え)|未学習|密[会教航告使室集書生接栓葬送着通偵封蔽閉]

DOS 窓など SJIS しか受け付けない環境で実行すると文字化けします。 文字化けで読めなくても、 | がところどころ混った文字が出力されるので大体分かると思います。

以前のバージョンでは t, to 等の入力で ruby がエラーを出力したのですが、 現在は問題が解消しています。

Meadow から起動できるかどうかの確認

続いて、migemo が Meadow から起動できるようになっているかどうかを確認します。 Meadow から migemo が起動できるかどうか確認するために DOS 窓から migemo を起動します。

> ruby -S migemo
Usage: migemo [OPTION]
  -h, --help             Display this help and exit.
  -d, --static-dict=DICT Use DICT as a static dictionary.
(中略)
  -l, --logging=FILE     Log patterns to FILE.

ruby と migemo の双方にパスが通っていれば上のように DOS 窓から起動することができます。 起動できない場合は環境変数 PATH を適切に設定してください。

.emacs の設定

Meadow 向け設定

.emacs に以下を記述します。

(setq migemo-directory "d:/cygwin/usr/local/share/migemo")
                       ;; ↑ /usr/local/share/migemo を Windows パス形式に変換したもの
(load "migemo")

初回のサーチでは migemo を起動する時間の分だけレスポンスが遅れます。 それが気になるという場合は、以下を追加しましょう。

(migemo-init)

migemo で t とか to が上手く処理できない場合の追加(obsolete)

t, to の検索ができるようになっているので、追加設定は必要なくなりました。

Windows 版 Emacs 21 の場合の追加(obsolete)

Meadow と同じ設定で動作するようになりました。

使用方法

通常の検索

普通に C-s (isearch-forward)、 C-r (isearch-backward) で検索しましょう。 それだけで Migemo を用いたローマ字での検索が有効になっているはずです。

検索中に C-e で migemo の有効/無効が切り替わります。

また、検索時以外では M-x migemo-toggle-isearch-enable を実行した場合に Migemo の有効/無効が切り替わります。

一時的に従来のサーチで検索したいという場合には C-u C-sC-u C-r による正規表現の検索で代用できます。

連文節検索

Migemo 0.40 から連文節に対応した検索が可能になっています。 連文節の指定は文節の変り目を大文字で指定することにより行ないます。 つまり「連文節の検索」ならば、 "renbunsetsuNoKensaku" 等と入力することにより検索できます。 SKK と同様の方法なので、SKK を使っている人はすぐ馴染めるはずです。

Cache による高速化

Migemo は便利なんですが、Emacs が migemo コマンドと通信しているため、 どうしても処理が遅くなります。 UNIX 系の OS 上で使う場合はそこそこのマシンなら気にならないですが、 Windows 上ではプロセス周りが遅いせいか、 UNIX 上でなら普通に動作するような CPU でも、 モタツキを(場合によってはかなり)感じることがあります。

そこで、Emacs 側で migemo コマンドの結果をキャッシュして高速化させる処理が搭載されています。 速い CPU を積んでいる環境ではあまり効果はないと思いますが、 もたつき感を感じる環境では効果があると思います。

なお、設定を行なう場合は、 通常の検索が動作するようになってから設定を行なうことをお勧めします。 さもないと、間違った結果がキャッシュされてしまいます。
また、設定を変更した場合にキャッシュを消さないと、 前の設定の影響が残るので注意が必要です。

履歴をキャッシュ

migemo-user-pattern-alist を t にすると 検索時に実行した migemo コマンドの結果をキャッシュします。

  (setq migemo-use-pattern-alist t)

キャッシュした結果は、 デフォルトで ~/.migemo-pattern に格納されます。 また、変数 migemo-pattern-alist-length を設定することにより、キャッシュされる結果の数を増減させることができます。

良く使われるパターンをキャッシュ

migemo-use-frequent-pattern-alist を t にすると、良く使われるパターンがキャッシュされるようになります。

  (setq migemo-use-frequent-pattern-alist t)

良く使われるパターンについては、インストール時には用意されていないので、 自分で作成します。 M-x migemo-frequent-pattern-make を実行することにより、パターンを作成します。 ミニバッファで以下のようにファイル名を尋ねられるので、 良く使われるパターンを記述したファイルを指定します。

frequent-chars: ~/

Migemo パッケージに含まれる frequent-chars ファイルを指定すると、 サーチ開始時の 1,2 文字目の入力時のレスポンスが改善されます。 また、 これ以外でも同様のフォーマットで作成したファイルを指定することができます。

作成された結果はデフォルトで ~/.migemo-frequent に保存されます。

更新履歴

2004.3.10
Migemo の URL 変更に伴なうリンク更新。
2004.2.20
Meadow からの起動確認を追加。
2003.6.6
連文節対応について追加。
2003.5.29
migemo 0.40 リリース
2002.11.13
作成