2011年8月12日金曜日

LionでEmacs 23.3a

Lionのフルスクリーンモードに対応したパッチが出ているということで、Emacs.appの最新版を自前でビルドしてみることにした。

まずは普通にオリジナルEmacs (Cocoa Emacs)にインラインIMEパッチを入れて作成。
先達の教えに従って、homebrewのRubyスクリプトを参照しながらパッチを集めてうまくビルドできた。C-\でのMacのIMEの切り替えも良好。

しかし、一方で「Emacs Mac Port」という、Carbon Emacsに実装されていたけれどもCocoa版に入っていない機能を組み込む別のパッチもある。ところがこれにインラインIMEパッチをあてても機能しない。"MacOSX"というインプットメソッドがない、といわれるわけだ。

理由は簡単で、インラインIMEパッチはCocoa Emacsに相当する、nextstepを意味するns関係のファイルに手を加えているから。例えばnsterm.h, nsterm.m, nsfns.m, ns-win.elなどだ。一方、Emacs Mac Portは独自にmacというシステムを追加し、独自に表示部分を実装していて互換性がない。どうしてもやりたければ、macfns.m, macterm.h, macterm.m, mac-win.elなどを調べて、必要な変更を加えなければならない。

この違いを確認するのは簡単で、window-systemをevaってやれば、Cocoa版ならnsが返るしEmacs Mac Portならmacが返る。

使い比べてみると、Emacs Mac Portはかなりがんばっていて、好感度が高い。ただ残念なのはうっかりC-\を押すとquailの貧弱なIMが起動して悲しいことになる。

必要性のある人が根性を出すのが正しいのだろうが、いかんせん手がまわらない。当面は、Cocoa Emacsの環境整備でごまかしていくつもり。