Ubuntu 10.04にmigemoインストール

パソコン・インターネット

Ubuntu 10.04にmigemoをインストールしました。

Ubuntu 9.10の時(Ubuntu
9.10でmigemoを使う
)は、sudo apt-get install migemoだけでうまく行ったのに、今回はダメでした。バックワードサーチで、エラーになります。

[MIGEMO] Pending I-search backward: kita [(wrong-type-argument integer-or-marker-p t)]

検索したところ、次のページを見つけました。ありがとうございます。

このページのリンク先をたどると、次のページに行き着きます。ソースの修正ありがとうございます。

Ubuntu 10.04にインストールされている、/usr/share/emacs/site-lisp/migemo/migemo.elを調べてみると…直って無いじゃん!! 放置?!

仕方ないので、自力でインストールすることにしました。次のページを参考にさせていただきました。ありがとうございます。

あらかじめ、migemoをインストールしておきます。

$ sudo apt-get install migemo

次に、migemoのパッケージをダウンロードして来ます。CVSから拾ってくると、直っているらしいのですが、良くわからないので、オリジナルパッケージをダウンロードしました。~/Downloadsに置きます。

展開して、ソースを修正する所までです。

$ cd
$ mkdir migemo
$ cd migemo
$ tar xvzf ~/Downloads/migemo-0.40.tar.gz
$ cd migemo-0.40
$ cp -p migemo.el.in migemo.el.in.orig
$ vi migemo.el.in

migemo.el.inの378行目からを修正します。migemo-backwardで、検索すると良いと思います。defun部分を、次の様に書き換えます。そのまま掲載させていただきます。

(defun migemo-backward (word &optional bound noerror count)
  (interactive "sSearch backward: \nP\nP")
  (if (delq 'ascii (find-charset-string word))
      (setq migemo-search-pattern word)
    (setq migemo-search-pattern (migemo-search-pattern-get word)))
  (if (null migemo-do-isearch)
      (search-backward-regexp migemo-search-pattern bound noerror count)
    (or (and (not (eq this-command 'isearch-repeat-backward))
     (not (get-char-property (point) 'invisible (current-buffer)))
     (or (and (looking-at migemo-search-pattern)
      (match-beginning 0))
(and (not (eq (point) (point-min)))
      (progn (forward-char -1)
     (and (looking-at migemo-search-pattern)
  (match-beginning 0))))))
(search-backward-regexp migemo-search-pattern bound noerror count))))

[migemo] Fix error with isearch-backwardより

ビルドして、インストールします。ソースを展開した時と、同じディレクトリにいる物とします。

$ ./configure --prefix=/usr --with-emacs=/usr/bin/emacs \
> --with-lispdir=/usr/share/emacs23/site-lisp/migemo \
> --with-rubydir=/usr/lib/ruby/1.8
$ make
$ sudo make install

migemo.elの置き場所が、apt-getした物と違っている様なので、手で移動します。
移動する必要性などは、わかりません。

$ sudo mv /usr/share/emacs23/site-lisp/migemo/migemo.el \
>  /usr/share/emacs/site-lisp/migemo/

これで、バックワード検索も大丈夫になりました。

なお、.emacsに次の設定を入れておくのをお忘れなく。

;; migemo
(load "migemo")

ちなみに、Emacs23を使っています。

と、記事を書き終わってから確認してみると、Ubuntu 9.10とMac OS Xでも、同じエラーが出ていました。気がつかなかった…。

実は、Ctrl-rでバックワード検索を開始してエラーになった後で、もう一度Ctrl-rを押すと、きちんと検索できるのです。

会社で、Meadowのmigemoパッケージを見てみたら、パッチが当たっていました。

Posted by お市のかた