[migemo] migemo-replace-in-string の高速化
Satoru Takabayashi
satoru @ namazu.org
2004年 6月 13日 (日) 05:19:57 JST
手元の OS を Red Hat 9 から Fedora Core 2 にバージョンを上げ
たり elisp を整理していたりしていたら、いつのまにか migemo
の検索が滅茶苦茶遅くなってしまいました。t と打つと 5秒くらい
待たされます。
Emacs のバージョンが上がったり elisp の再インストールなどを
行っていたので、遅くなった原因はよくわからなくなってしまった
のですが、調べてみたところ、migemo-replace-in-string がもの
すごい時間を食っていることがわかりました。
そこで、migemo-replace-in-string を以下のように単純に書き直
したところ、かなり速くなりました。
(defun migemo-replace-in-string (string from to)
(with-temp-buffer
(insert string)
(goto-char (point-min))
(let ((migemo-do-isearch nil))
(while (search-forward from nil t)
(replace-match to nil t)))
(buffer-substring (point-min) (point-max))))
僕と同様に migemo-replace-in-string が遅くて困っている人も多
いかもしれないので、ひさしぶりに新しい版を公開したいと思います。
Migemo メーリングリストの案内