Emacsにはmigemoという便利な検索機能があります。IMEを有効化せずともローマ字のまま日本語を入力すればその日本語の文字を検索してくれるというものです。

以前、Meadow3を使っていた頃は何の設定もせずに初めから実装されていたこの機能が今使っているEmacsには無かったので、ちょっとした面倒を我慢して使っていましたが、不便を解消するためにインストールしてみることにしました。

初め、emacs migemo.el : ローマ字で日本語検索する神ツールMigemoが更新されたよ! | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショットを見て、M-x package-list-packagesでmigemoをインストールしelファイルを読み込んでみましたが、動作しません。(きちんと設定できて動作している今から振り返ると辞書ファイルを正しく指定できてないので当然です。)

他にもmigemoのインストールに関するページが複数ありましたが、Rubyが必要だとかあって、Cygwinで既にRubyがインストールされているのにどう連携したらいいのかと、UNIXのコマンドで説明してあるものではなくWindowsで説明がしてあるものを探しました。

上記のページにしるしてあった、C/MigemoのページにWindows用のバイナリ(C/Migemo for Windows 64bit)があったので、そのバイナリをダウンロードしておきました。調べていく途中で見かけたのですが、C/MigemoというのはRubyを必要としないC言語で組まれたものということで、Rubyとの連携を考慮せずに済みそうでした。

ここを見て動作させることができたと参考になったのが別のC/Migemoのページでした。ここの「C/Migemoのインストール」に書かれていることを参考に次のようにに先述のバイナリの中身(cmigemo-default-win64)のファイルを配置しました。

  1. cmigemo.exeとmigemo.dllをパスの通ったディレクトリに配置
  2. Windowsでパスが通してあるディレクトリは多数ありますが、その中のemacsをインストールしているディレクトリのbinに配置しました。
  3. バイナリを解凍したファイルの配置
  4. elファイルの記述でどうにでもなるのですけど、以前、html-helper-mode.elを配置した「emacsディレクトリ/share/emacs/site-lisp」にcmigemo-default-win64のフォルダを置くことにしました。
  5. elファイルの記述と読み込み
  6. 次のように辞書ファイルを配置した場所を指定しました。
    (setq migemo-command "cmigemo")
    (setq migemo-options '("-q" "--emacs" "-i" "\a"))
    (setq migemo-dictionary (expand-file-name "PATHtoDIC/migemo-dict"))
    (setq migemo-user-dictionary nil)
    (setq migemo-regex-dictionary nil)
    (setq migemo-use-pattern-alist t)
    (setq migemo-use-frequent-pattern-alist t)
    (setq migemo-pattern-alist-length 1000)
    (setq migemo-coding-system 'utf-8-unix)
    (load-library "migemo")
    (migemo-init)

    PATHtoDICはmitemo-dictのあるディレクトリです。)

    これをmigemo.elというファイルで保存し、.emacs.d/init.elで
    (load "~/.emacs.d/migemo.el")
    として読み込むようにしました。
これでMIGEMOが動作するようになりました。