Mac OS XでEmacs 23.1でinlineかな漢字変換

健全な文化生活には、シトロエンとEmacsが欠かせないと思っております。

CocoaEmacs - MacEmacsに書いてあるとおり、先日でたEmacs 23.1は、Mac OS Xでビルドした場合、CarbonじゃなくてCocoaベースになっている。
ただ、このままビルドすると、かな漢字変換はEmacsツルシで付いてくるquailベースのものしか使えない。
僕はかな漢変換というかIMはツルシのものを素直に使う派で、Wnn4 jserver + EGGなり, 漢字Talk 2.0, sj3, MSIME, ことえり,みな不満なく使ってきたのだが、さすがにquailは勘弁だ。

と思ったら、
ニュース: inline patch for Emacs23 (2009/6/17)リリース - - MacEmacs JP - SourceForge.JP
ということで、当ててみたら素直に当たりました。基本的にはそんだけの話。

./configure --with-ns --without-xでビルドすると、 make install するとnextstep/Emacs.appの中にmake installしていくのが面白い。
(ご存知のとおり、Mac OS XというかNeXTStepの「ほげ.app」って、ファイルシステム的にはただのディレクトリ/フォルダであって、「最終リンク? いいじゃんそんなのしなくたって」というのが当時非常に目から鱗だった)

MacBook (2.2GHz Core 2 Duo, 4GB) では2分でビルド完了する。すごいな。
R4000 200MHz の sgi Indigo2でmule 1.0が6分でビルドできて、俺は地上最強に速い男だとおもった16年まえが懐かしい。
(当時一緒に mule 追っかけしてた、当時リンクス, 現ジブリの片塰監督、お元気ですか?)

おお、(set-input-method "MacOSX")できるぞ!

日本語入れられる! と思ったとたん、まず打つ日本語がいつも脊髄反射で「うんこ」とかなのが、あさって42になるいい大人とは思えない。

かれこれ20年近く使ってる ~/.emacs は、emacs 23 依存部分を追い出すと、こんな:

;;; http://d.hatena.ne.jp/kazu-yamamoto/20090122/1232589385
(if (= emacs-major-version 23)
    (progn
      (set-input-method "MacOSX")
      (setq ns-command-modifier (quote meta))
      (setq ns-alternate-modifier (quote super))
      (setq my-font "-*-*-medium-r-normal--14-*-*-*-*-*-fontset-hiramaru")
      (setq fixed-width-use-QuickDraw-for-ascii t)
      (setq mac-allow-anti-aliasing t)
      (set-default-font my-font)
      (add-to-list 'default-frame-alist `(font . ,my-font))
      (set-fontset-font
       (frame-parameter nil 'font)
       'japanese-jisx0208
       '("Hiragino Maru Gothic Pro" . "iso10646-1"))
      (setq face-font-rescale-alist
	    '(("^-apple-hiragino.*" . 1.2)
	      (".*osaka-bold.*" . 1.2)
	      (".*osaka-medium.*" . 1.2)
	      (".*courier-bold-.*-mac-roman" . 1.0)
	      (".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
	      (".*monaco-bold-.*-mac-roman" . 0.9)
	      ("-cdac$" . 1.3)))))

ただ、emacs 23で良くなったのはおもにXがらみであって、OS Xで使ってるぶんには特にemacs 23の恩恵というものはなく、むしろCurrently, the Nextstep port is not as stable as the other existingports; we hope to improve it in future releases.って感じなのだが、まあ細かいことはいいじゃないですか。