Get the incredible hacking tool. (Emacs 23.2.91 + Mac port patch)
(2010年11月17日の更新記事です.)
Emacs.app の build.
Terminal.appで,
mkdir work && cd work wget ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.2.91.tar.gz wget ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-23.2.91-mac-1.999.tar.gz tar xzf emacs-23.2.91.tar.gz tar xzf emacs-23.2.91-mac-1.999.tar.gz cd emacs-23.2.91 patch -p 0 <../emacs-23.2.91-mac-1.999/patch-mac cp -r ../emacs-23.2.91-mac-1.999/mac mac cp ../emacs-23.2.91-mac-1.999/src/* src cp ../emacs-23.2.91-mac-1.999/lisp/term/mac-win.el lisp/term cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources ./configure --with-mac --without-x nice make -j `sysctl -n hw.availcpu` sudo make install
.
Then,
open mac/Emacs.app
.
で,問題なく動いたら,アプリケーションフォルダへ:
mv !^ /Applications/
.
設定
フォントの幅を揃えるには,
(when (and (eq window-system 'mac) (>= emacs-major-version 23)) (create-fontset-from-ascii-font "Menlo-12:weight=normal:slant=normal" nil "menlokakugo") (set-fontset-font "fontset-menlokakugo" 'unicode (font-spec :family "Hiragino Kaku Gothic ProN" :size 12) nil 'append) (set-fontset-font "fontset-menlokakugo" 'japanese-jisx0208 '("Hiragino Kaku Gothic ProN" . "iso10646-1")) (set-fontset-font "fontset-menlokakugo" 'japanese-jisx0212 '("Hiragino Kaku Gothic ProN" . "iso10646-1")) (set-fontset-font "fontset-menlokakugo" 'mule-unicode-0100-24ff '("menlo" . "iso10646-1")) (add-to-list 'default-frame-alist '(font . "fontset-menlokakugo")) (setq face-font-rescale-alist '((".*Hiragino.*" . 1.2) (".*Menlo.*" . 1.0))))
.
これでフォントの幅は揃うが,alphabet のみの行と日本語を含む行の高さが揃わない.
山本氏が,「[Macemacsjp-users 1678] Cocoa Emacs のピコピコ問題」で指摘なさっている問題と同様の様です.Mac port patch では,src/macfont.c (2050行あたり)を弄れば良さそうですが,良く分かりません.
# う〜んと,Menlo 用条件を追加すれば良いのかな.試してみたらこれで OK そう.
# 以下の式を Times の条件式の後に追加:
|| (CFStringCompare (family_name, CFSTR ("Menlo"), 0) == kCFCompareEqualTo)
.
Mac port patch のフルスクリーンは,snow leopard で追加された,マウスカーソルをスクリーン下端に近づけると Dock を表示するモードになっている.
フルスクリーンコマンド:
(defun toggle-fullscreen () (interactive) (if (frame-parameter nil 'fullscreen) (set-frame-parameter nil 'fullscreen nil) (set-frame-parameter nil 'fullscreen 'fullboth)))
.