@kyanny's blog

My thoughts, my life. Views/opinions are my own.

color-theme.elを導入したがうまく動かなかった(解決済み)

Meadow memoのwikiにも書いておいたけど、今使っている Meadow 2.10 に color-theme.el を入れたところ、エラーが出て動かなかった。 color-theme.el の内容を修正したら動くようになった。

color-theme.el のバージョンは 6.5.5 で、http://www.emacswiki.org/cgi-bin/wiki?ColorTheme にある、

See on my personnal page to get the latest version: http://zedek.nerim.net/tmp/color-theme.el.gz

こっちのほう。 Emacs wiki 内にアップされているほうは 6.5.4 とバージョンが古いうえに、開くとめちゃめちゃに文字化けしてしまって使えない。 latest version を Emacs wiki 内においてくれよと思いつつ、開いて保存。 color-theme.el.gz というファイル名だが、 gzip で圧縮されているわけではないようで、「リンク先を保存」してから「解凍」しようとするとおかしなことになる。普通にクリックして開くとただのテキストファイルなので、コピーしてしまうのがよさそう。

で、こいつをロードパスの通ったところ(自分の環境では、 C:\meadow\site-lisp)に、 color-theme.el という名前で置いて、 .emacs に、

(load "color-theme")

と記述。Meadowを立ち上げると、エラーが出てしまった。文字コードや改行コードがまずいのかと思って、xyzzyでわざわざ両方を指定しなおして保存したりしてみたが、うまくいかず。

困ったので ColorTheme のページをうろうろしてみたら、 Issues という項に、それっぽい記述を発見。

New version of color-theme (6.5.4) doesn't work with stable emacs version (21.4). Users will see this error:

color-theme-backup-original-values: Symbol's function definition is void: color-theme-filter

To fix the problem, open color-theme.el and change:

easy-menu-get-map(nil ("Tools") nil) easy-menu-add-item(nil ("Tools") "--")

to:

easy-menu-get-map(nil ("tools") nil) easy-menu-add-item(nil ("tools") "--")

Original help.gnu.emacs post: http://tinyurl.com/bgke3

    • JasonDunsmore?

「 color-theme.el の version 6.5.4 は Emacs 21.4 だとこんなエラーが出て動かないから、一部修正して」ということらしい。6.5.4 じゃなくて 6.5.5 を入れたんだけど、エラーメッセージが似ていたので試してみた。

color-theme.el を開き、該当箇所を探すが、これも微妙に違っているようで、 easy-menu-get-map という記述はなかった。 easy-menu-add-item という記述はあって、そこに問題の "Tools" という文字列も書いてあった。( L589, L590 の二箇所)この "Tools" を、指示のとおり "tools" に書き換えて Meadow を再起動したら見事に正常に動作した。

ということで、何がなんだかさっぱりわからないけど、うまく動くようになったので、改めて晒しに耐えうるカッコイイ Meadow にするためにカスタマイズに入りたい。