Emacs22 の font-lock の色使いが terminal で再現できなくて意味不明

頑なに拒んでいた unicode 化の波なんだけど、一応 javascript のネイティブは unicode だしなということで渋々対応を考え始める。1

なんで渋っていたのかというと、mule-ucs を組み込むと Emacs の起動がやたら遅いから。Debian マシンは当然 CVS 版が入ってるわけないので、これに関しては mule-ucs で我慢することを決め込む。Emacs は終了しないで使う。2

問題は手元の OSX 版。mule-ucs を組み込む方法が分からん。3fink で入れることにすると Emacs からビルドし始めるので、それだったら CVS 版でいいじゃないかと思い立ち、Carbon Emacs を落としてくる。立ち上げる。おぉ、OS ネイティブのウィンドウだ。こえぇ。Emacs は terminal でしか使ったことがないので自分のウィンドウを持ってる Emacs を見るとビビる。いそいそと Carbon Emacs 内のディレクトリをたどり、

emacs -nw

すると普通に terminal の中で起動してくれた。よしよし。

……。

あれ。色分けがおかしくね? font-lock は有効になっているんだけど、色の付き方がずいぶん中途半端になってしまう。うーん。もう一度ウィンドウを持ってる Emacs を立ち上げてみる。あー。何この中途半端な色。こんな微妙な色が terminal で出るわけないじゃん。

うーん。Carbon Emacs だからかなぁ?と思い、意を決して Fink から Emacs 22 のビルドを開始。その間はずっとサーバ上で作業するので手元の処理が重くなっても気にしない。で、起動。

やっぱり色分けの意味が分からんorz

どうやら Emacs 22 の font-lock の色分けは基本的に terminal での利用は考慮していないっぽい。まいったなぁ。Emacs は細かいカスタマイズって面倒でやってないのでこういう事態が起きるとさっぱり分からない。

※ とりあえず Emacs 21.3.5 にして回避した。

[追記] ansi8 + M-x customize で emacs22 への準備 で Terminal でも使えるようになりました!

  1. ちなみにこれまで書いてきた ecmascript のコードは us-ascii 以外の文字を書かないという方法で回避してきた。 

  2. Debian の apt-get で mule-ucs をインストールするとシステムワイドな emacs の起動時の設定に mule-ucs を組み込むスクリプトがセットされてしまう。それを勝手に外すのはさすがにどうかと思うのでやめた。 

  3. Debian と違って手で入れれば ok だった。 

More