カテゴリー
Emacs

Cocoa Emacs

MacEmacsJP ML に Cocoa Emacs でのフォント設定 が流れて、そこではじめて Cocoa Emacs がそれなりに使い物になってたことを知った俺(笑)。

で、 Emacs current のソースは毎日 update してたのでせっかくだから試してみることにしました。

作り方はここを参照して…って本当にこのまま実にあっさり出来上がってちょっと拍子抜け(笑)。流石に既存の Carbon Emacs を上書きするのは怖いので CocoaEmacs.app とかに変えて Applications に突っ込んであげました。

普段使ってる Mew, Riece, navi2ch あたりも入れてひとまずは完了。んで先ほどのフォント設定を .emacs に追加したところ、ほぼ良さそうなんだけど、半角カタカナが表示されないじゃありませんか!

まぁ半角カタカナが表示されなくて困るのはほぼ navi2ch だけなんですが(笑)、どうせなら表示できたほうが嬉しいよねって試行錯誤してこんな感じに落ち着きました。

(setq my-font "-*-*-medium-r-normal--10-*-*-*-*-*-fontset-hiramaru")
(setq fixed-width-use-QuickDraw-for-ascii t)
(setq mac-allow-anti-aliasing t)
(if (= emacs-major-version 22)
    (require 'carbon-font))
(set-default-font my-font)
(add-to-list 'default-frame-alist `(font . ,my-font))
(when (= emacs-major-version 23)
  (set-fontset-font
   (frame-parameter nil 'font)
   'japanese-jisx0208
   '("Hiragino Maru Gothic Pro" . "iso10646-1"))
  (set-fontset-font
   (frame-parameter nil 'font)
   'katakana-jisx0201
   '("Hiragino Maru Gothic Pro" . "iso10646-1"))
  (set-fontset-font
   (frame-parameter nil 'font)
   'japanese-jisx0212
   '("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))))

ちなみに Cocoa Emacs 、 Cocoa アプリケーションなので日本語のインライン入力もバッチリなのだけど、 Emacs 側からの制御が出来ないっぽいのでインラインパッチあてた Carbon Emacs の快適さには敵わない、というか日本語入力になってることに気付かずに Mew で inc しようとしたりするとエラーになっちゃってどうやって復帰したらいいのか途方に暮れることが多々あるのが困り者(delete連打してから入力モード切り替えで抜けれた)

けど、そこを除けば透過も効いてるし、概ね快適なので Cocoa Emacs に引っ越ししてもそんなに問題は出ないかもですね。

cocoaemacs

そーいえば Emacs current のソースは

cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/emacs login
# password は入れずにそのまま Enter
cvs -d:pserver:anonymous@cvs.sv.gnu.org:/sources/emacs co emacs

って感じで。あと cvs は xcode を突っ込めば一緒に入ったような気がする…

(2009/10/30追記)

この内容は古いので Snow Leopard が出た以降はここら辺のほうが参考になる、はず

コメントを残す