Carbon Emacsにmigemoインストール[追記あり]
会社で使っているMedow(Windows版Emacs)に、migemo(インクリメンタル日本語検索)がインストールされていて、大変便利だったので、Mac OS X 10.5.8 LeopardのCarbon Emacs(2009 Summar版)にインストールしてみました。参考にしたのは、次のページです。
この手順通りだと、使えませんでした。ほとんどOKなのですが、.emacsの設定を換える必要がありました。結局、次のようにしています。
- パッケージダウンロード
- パッケージの展開
- コンパイルとインストール
- .emacsの設定
ダウンロードしてくるパッケージは4つあります。
- Migemo: ローマ字のまま日本語をインクリメンタル検索 から、migemo-0.40.tar.gz
- Ruby/Romkan: ローマ字とひらがなを相互に変換する Ruby用のライブラリから、ruby-romkan-0.4.tar.gz
- Ruby/Bsearch: 配列を 2分探索する Ruby用のライブラリから、ruby-bsearch-1.5.tar.gz
- SKK辞書 – FreeStyleWikiから、SKK-JISYO.L.gz
次に、パッケージの展開をします。ダウンロードしたパッケージは、~/Downloadsにある物とします。
$ cd $ mkdir work $ cd work $ tar xvzf ~/Downloads/migemo-0.40.tar.gz $ tar xvzf ~/Downloads/ruby-bsearch-1.5.tar.gz $ tar xvzf ~/Downloads/ruby-romkan-0.4.tar.gz $ cd migemo-0.40 $ mv ../ruby-bsearch-1.5/bsearch.rb . $ mv ../ruby-romkan-0.4/romkan.rb . $ cp ~/Downloads/SKK-JISYO.L.gz . $ gunzip SKK-JISYO.L.gz
次に、コンパイルとインストールです。(参照元と同じ)
$ ./configure --prefix=/Applications/Emacs.app/Contents/Resources \ --bindir=/Applications/Emacs.app/Contents/MacOS/bin \ --with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs $ make $ make install rubydir=/Applications/Emacs.app/Contents/Resources/lib/ruby/site_ruby $ cp bsearch.rb /Applications/Emacs.app/Contents/Resources/lib/ruby/site_ruby $ cp romkan.rb /Applications/Emacs.app/Contents/Resources/lib/ruby/site_ruby $ cp migemo.el migemo.elc /Applications/Emacs.app/Contents/Resources/site-lisp/
次に、.emacsに追加します。
;; migemo (setq migemo-command "migemo") (setq migemo-options '("-t" "emacs")) (setq migemo-dictionary "/Applications/Emacs.app/Contents/Resources/share/migemo/migemo-dict") (setq migemo-user-dictionary nil) (setq migemo-regex-dictionary nil) (setenv "RUBYLIB" "/Applications/Emacs.app/Contents/Resources/lib/ruby/site_ruby/") (require 'migemo)
これで、migemoが使えるようになっているはずです。
動かない原因を探るのに、苦労しました。
migemo-dictionaryを正しく設定する前は、M-x migemo-forwardで検索しようとすると、次のエラーが出ていました。
migemo-forward: Search failed: “/Applications/Emacs.app/Contents/MacOS/bin/migemo:102:in `main’: static dictionary not found: /usr/local/share/migemo/migemo-dict (RuntimeError)
from /Applications/Emacs.app/Contents/MacOS/bin/migemo:164"
辞書が見つからないと言っているようです。それで、migemo.elを見ていたら、辞書の場所の設定方法が出ていました。それで、辞書を設定すると、このエラーは出なくなりました。
次に、C-sで検索しようとすると、1文字なら検索できるのですが、2文字以上だと検索できません。migemo-optionsで、-iを指定(文字毎に文字列を入れるオプション)しているのが悪いのでは? と思い、外してみた所、正しく検索出来るようになりました。
ソフトが動かない時は、現象やエラーメッセージを頼りに、少しずつ対応していくしかありません。こういう、トラブル対策の積み重ねで、コンピュータに強くなっていきます。
(追記 2010-07-10 08:46)バックワードサーチのバグ回避方法です。
[MIGEMO] Pending I-search backward: kita [(wrong-type-argument integer-or-marker-p t)][amazonjs asin="487311277X" locale="JP"]
ディスカッション
とても参考になりました。
膨大な時間を節約することができました。
参考になる記事をどうもありがとうございます!!
tomoさんへ、初コメントありがとうございます。
そうですか、うまく行きましたか。良かったです。
記事を書く時は、自分の環境では試すのですが、他の方の環境でうまく行くかどうか、わからないのです。
ご報告をいただいて、うまく行った事がわかりました。
ありがとうございます。