2010年12月12日日曜日

Windows7 に C/Migemo & migemo.el を導入

Emacsで、いわゆる日本語インクリメンタルサーチを実現する。

日本語インクリメンタルサーチつまり Migemo の辞書検索モジュールには Ruby/Migemo と C/Migemo の二つの実装がある。ここでは高速かつRuby不要という点から後者を利用する。

前提としている環境

  • Windows 7 Home Premium 64bit
  • Cygwin 1.7.7
  • GNU Emacs 23.1.1 (i386-mingw-nt6.1.7600)

※Cygwinのバージョンは uname -a コマンドを打つと確認できる。

導入作業

辞書ファイルをインストール

KaoriYa.net より「バイナリ(DLL) 1.3 64bit版 for Windows (約3.46MB)」をダウンロード。

解凍すると、/dict/utf-8 に辞書ファイルが計5個生成される。これ(UTF-8の辞書)を emacs向けのフォルダに置く。ここでは、 ~/.emacs.d/site-lisp/migemo/ に置くこととする。

$ cd ~/download  #ダウンロードしたファイルがある場所へ移動
$ unzip -q cmigemo-1.3-w64dll.zip
$ ls cmigemo-1.3-w64dll/dict/utf-8/
han2zen.dat
hira2kata.dat
migemo-dict
roma2hira.dat
zen2han.dat
$ mv cmigemo-1.3-w64dll/dict/utf-8 ~/.emacs.d/site-lisp/migemo/
C/Migemo の dllファイル および exeファイル を作る

さらに「ソースコード 1.3(予定) 開発版」をダウンロード。

Cygwinを起動して、以下のようにコンパイル&設置を行う。

$ cd ~/download  #ダウンロードしたファイルがある場所へ移動
$ tar xvjf cmigemo-1.3c.tar.bz2  #解凍
$ cd cmigemo-1.3
$ make cyg  #コンパイル
$ cp build/{cygmigemo1.dll,cmigemo.exe} "C:\cygwin\bin"  #dll と exe を cygwin/bin に設置
migemo.el のインストール

C/Migemo を emacs から実行するための elisp が "migemo.el".

オリジナルのソースコードは積極的にメンテナンスされていないようなので、どなたか分からないが個人的にElispを公開しているかたのものを使うことにする。

sakito / dot.emacs.d / source – Bitbucket よりダウンロードして、load-pathに置く(~/.emacs.d/site-lisp/など)。

emacs の*scratch*バッファを使うなどして下記elispコードを評価。

;; migemoの設定
(setq migemo-command "cmigemo")
(setq migemo-options '("-q" "--emacs" "-i" "\a"))
(setq migemo-dictionary (expand-file-name "~/.emacs.d/site-lisp/migemo/utf-8/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)

動作のテスト&設定の永続化
"C-s"で日本語インクリメンタル検索が動作するか試す。問題がなければ上のelispコードを .emacs や init.el に保存しておく。

0 件のコメント:

コメントを投稿