Carbon Emacsにmigemoインストール[追記あり]

2017年5月15日パソコン・インターネット

会社で使っているMedow(Windows版Emacs)に、migemo(インクリメンタル日本語検索)がインストールされていて、大変便利だったので、Mac OS X 10.5.8 LeopardのCarbon Emacs(2009 Summar版)にインストールしてみました。参考にしたのは、次のページです。

この手順通りだと、使えませんでした。ほとんどOKなのですが、.emacsの設定を換える必要がありました。結局、次のようにしています。

  1. パッケージダウンロード
  2. パッケージの展開
  3. コンパイルとインストール
  4. .emacsの設定

ダウンロードしてくるパッケージは4つあります。

次に、パッケージの展開をします。ダウンロードしたパッケージは、~/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"]

Posted by お市のかた