Carbon Emacsからの卒業
特に不満はないのだけれど,前から移行したいなと思っていたので,思いきって移行する.
ソースからコンパイル
ちょっと調べてみると,一応バイナリの配布もあるみたいだけど,ソースからコンパイルしている人が多数.せっかくなのでソースからのコンパイルをやってみる.要Xcode.
Emacs23 (Cocoa Emacs) 入門から中毒まで : 紹介マニア
インストール手順だけじゃなくて,使い方までまとまってる.
いろんなサイトでの実行例が23.3aだったので,そのまま23.3aのファイルをダウンロードしてみたけど,なぜかサイズが319Bのファイル... そんな小さいわけないだろう,と思って調べてみたら23.3bがつい最近出てたみたいなので23.3bにしてみる.
しかし,↑のサイトの通りにコンパイルしようと思ったら途中でコケる.Lionだとダメっぽい.そこで,さらに調べてみるといろいろパッチが出てるみたいなので,当てる.ついでなのでLionのフルスクリーン対応パッチも当てる.IMEパッチは当てない (SKK使うのでいらない).
MacBook Air with Lionセットアップ - 日々の報告書
Emacs on OSX 10.7(Lion)
PDFです.
# 作業ディレクトリ作成
mkdir emacs-23.3-build
cd emacs-23.3-build
# ソースダウンロード
curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3b.tar.gz
# 各種パッチダウンロード
curl -O https://trac.macports.org/raw-attachment/ticket/30268/patch-no-pie.diff
curl -O https://trac.macports.org/raw-attachment/ticket/30268/patch-fix-title-bar.diff
curl -O https://trac.macports.org/export/77151/trunk/dports/editors/emacs/files/patch-src_unexmacosx.c.diff
# Lionのフルスクリーン対応
curl -O http://cloud.github.com/downloads/typester/emacs/emacs-23-lion-fullscreen-test.patch
# 展開
tar xvfz emacs-23.3b.tar.gz
cd emacs-23.3
# パッチを当てる
patch -p0 < ../patch-no-pie.diff
patch -p0 < ../patch-fix-title-bar.diff
patch -p1 < ../patch-src_unexmacosx.c.diff
# can't find file to patch at input line 3
# Perhaps you used the wrong -p or --strip option?
# The text leading up to this was:
# --------------------------
# |--- src/unexmacosx.c.orig 2011-01-08 12:45:14.000000000 -0500
# |+++ src/unexmacosx.c 2011-03-21 04:44:57.000000000 -0400
# --------------------------
# File to patch: src/unexmacosx.c
patch -p1 < ../emacs-23-lion-fullscreen-test.patch
# configure, make, install
./configure --with-ns --without-x
make bootstrap
make install
nextstepの中にEmacs.appができるので,/Applications に移動して使う.ちゃんとフルスクリーンも対応してる.
.emacsの修正
Carbon Emacsの設定そのままだとエラーが出たのでいくつか修正.
; これがあるとエラーが出る
;(utf-translate-cjk-mode t)
; window-system が mac から ns になったので関連するところを修正
;(if (eq window-system 'mac)
(if (eq window-system 'ns)
; carbon-font でのフォント設定はできない
; (require 'carbon-font)
; (fixed-width-set-fontset "hiramaru" 16)
; フォントの設定
; http://leadproject.web.fc2.com/FC2/Unix_App_on_Lion_files/emacs.pdf
(when (>= emacs-major-version 23)
(set-face-attribute 'default nil :family "monaco" :height 140)
(set-fontset-font
(frame-parameter nil 'font)
'japanese-jisx0208
'("Hiragino Maru Gothic Pro" . "iso10646-1"))
(set-fontset-font
(frame-parameter nil 'font)
'japanese-jisx0212
'("Hiragino Maru Gothic Pro" . "iso10646-1"))
(set-fontset-font
(frame-parameter nil 'font)
'mule-unicode-0100-24ff
'("monaco" . "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))))
; 透明度が%表示だと反映されない
; (add-to-list 'default-frame-alist '(alpha . (80 70)))
(add-to-list 'default-frame-alist '(alpha . (0.8 0.7)))
まだ修正が必要かもしれないけど,とりあえずエラーはなくなった.
SKKのインストール
Mac Book Airの方にはSKKを入れてなかったのでインストール (AquaSKKは入れてたけど).
curl -O http://openlab.ring.gr.jp/skk/maintrunk/ddskk-14.3.tar.gz
tar xvzf ddskk-14.3-tar.gz
cd ddskk-14.3
SKK-CFG のコメントを外す.
;;; Apple Mac OS X における self-contained な Carbon/Cocoa Emacs の設定例:
(setq SKK_DATADIR "/Applications/Emacs.app/Contents/Resources/etc/skk")
(setq SKK_INFODIR "/Applications/Emacs.app/Contents/Resources/info")
(setq SKK_LISPDIR "/Applications/Emacs.app/Contents/Resources/site-lisp/skk")
(setq SKK_SET_JISYO t)
make&installで完了.
make install EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
(2011.12.6 追記) EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs が必要.
ddskk 14.2 をインストールする際の注意点 - My Emaps
必要な設定を.emacsにしておく.
;; AquaSKK 対策
(setq mac-pass-control-to-system nil)
;; AquaSKK と辞書を共用
; skkserv
(setq skk-server-host "localhost")
(setq skk-server-portnum 1178)
AquaSKK側もskkservの設定をしておく.
ちゃんと比較はしてないけど,明らかにCarbon Emacsより起動が速い.たぶん,プログラムそのものの実行が速くなったというよりも,余分なelispを読まなくなったんだと思う.