2010年10月9日土曜日

フルスクリーン対応 Cocoa Emacs with skk 導入まとめ

カヤックにて配布しているパッチを当ててフルスクリーン対応のemacsをMacで使う。

カヤック特製 Emacs フルスクリーン対応 Cocoa Emacs
http://bm11.kayac.com/2009/project/opensource/kayac-emacs/


また、skk も導入する。

事前準備

当然のように make しているが、そのためには xcode が必要。
なので、事前にインストールすることがさりげなく大事。

今回はターミナル(bash)のプロンプトにパスが出ると長ったらしいから

PS1="\$ "  
と ~/.bash_profile に書き、スッキリしておいた。

ダウンロード

参考URL

パッチ当てを含め、emacs のインストールはここを真似した

カヤックBM11特製のCocoa Emacsフルスクリーンパッチを導入
http://havelog.ayumusato.com/computer/software/e124-kayac-emacs-patch.html

emacs

ソースを下記ftpパスより取得
http://ftp.gnu.org/pub/gnu/emacs/emacs-23.2.tar.gz

パッチ

上記カヤック社よりwebブラウザにて、下記2点をダウンロードした。

  • feature-fullscreen.patch
  • fix-shiftmodifier-with-ime.patch

APEL

skk は APEL (A Portable Emacs Library) に依存しているので必要。
http://kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/APEL/index.html.ja
APEL も SKK も、 SKK Openlabからリンクを巡ってソースを取得できる。

Daredevil SKK

skk 本体。
dáredèvil 向こう見ずの(人), 猪突猛進型の(人). (大辞泉)
http://openlab.ring.gr.jp/skk/main-ja.htm

skk辞書

SKK-JISYO.L を始め、固有名詞の辞書を取得。
http://openlab.ring.gr.jp/skk/wiki/wiki.cgi?page=SKK%BC%AD%BD%F1
gzip -d SKK-JISYO.jinmei.gz
などで解凍しておけばいいのかと。

emacs の導入

アプリケーション (/Applications) に Carbon Emacs を入れていたので、消す。
さようならCarbon、こんにちはCocoa。
そしてゴミ箱へ。

参考URLにある下記は同じく打つ。
癖として tar xvzf する前に tar tvzf する筆者はビビリ野郎だ。
え?こんなとこに出しちゃうなんて、信じらんない!バカッってことあるだろ?(何)

% tar zxvf emacs-23.2.tar.gz
% cd emacs-23.2
% patch -p1 < ../feature-fullscreen.patch
% patch -p1 < ../fix-shiftmodifier-with-ime.patch
% ./configure --with-ns --without-x
% make bootstrap
% make install

情報が遅すぎだが、--with-ns のオプションの存在に驚く。 emacs のソースをMacOSXのGUI向けにビルドし、Emacs.app を作ってくれる。 作成後は /Applications へ移動しちゃえばいいのだ。

$ mv nextstep/Emacs.app /Applications

おお!ことえりでインライン文字入力できますね…。 (でも私は skk を使う。)

パッチの当たった emacs はこれでインストール完了。
M-x ns-toggle-fullscreen
で emacs バッファがフルスクリーン表示されることを確認! これはイイ! 快適!


ところが1点、さて…フォントが妙ですね…。 ひらがながゴシック体、漢字が明朝体で、「直」という漢字が変な形に。 htmlモードにしてみたら2バイト文字の斜体がお豆腐になることを確認。
とりいそぎ、情報を方々から集め、$HOME/.emacs.d/init.el を編集・・・。
; 言語を日本語にする
(set-language-environment 'Japanese)
; 極力UTF-8とする
(prefer-coding-system 'utf-8)

; バックスラッシュ
(define-key global-map [165] nil)
(define-key global-map [67109029] nil)
(define-key global-map [134217893] nil)
(define-key global-map [201326757] nil)
(define-key function-key-map [165] [?\\])
(define-key function-key-map [67109029] [?\C-\\])
(define-key function-key-map [134217893] [?\M-\\])
(define-key function-key-map [201326757] [?\C-\M-\\])

;ヒラギノ角ゴ と Menlo
(create-fontset-from-ascii-font "Menlo-14:weight=normal:slant=normal" nil "menlokakugo")
(set-fontset-font "fontset-menlokakugo"
                  'unicode
                  (font-spec :family "Hiragino Kaku Gothic ProN" :size 16)
                  nil
                  'append)
(add-to-list 'default-frame-alist '(font . "fontset-menlokakugo"))

emacs 23.2 のフォント回りはかなり強化されており、以前より設定はしやすくなったそう。 フォントは後で細かくいじりたいところ。

skk 導入

まずは apel

$ tar xvzf apel-10.8.tar.gz
$ cd apel-10.8

バイトコンパイル
$ make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs

インストール先を確認
$ make what-where LISPDIR=/Applications/Emacs.app/Contents/Resources/site-lisp VERSION_SPECIFIC_LISPDIR=/Applications/Emacs.app/Contents/Resources/site-lisp

インストール /Applications 配下の site-lisp にインストール
$ make install LISPDIR=/Applications/Emacs.app/Contents/Resources/site-lisp VERSION_SPECIFIC_LISPDIR=/Applications/Emacs.app/Contents/Resources/site-lisp

つぎに skk
インストール設定は SKK-CFG という elisp を編集することで行う。 /Applications 配下に Emacs をインストール済みなら、下の方の
;;; Carbon Emacs Package の設定例:
のコメントアウトを外せばOK。

;;; Carbon Emacs Package の設定例:
 (setq APEL_DIR "/Applications/Emacs.app/Contents/Resources/site-lisp/apel")
 (setq EMU_DIR "/Applications/Emacs.app/Contents/Resources/site-lisp/emu")
 (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 what-where EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs

インストール
$ make install EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs

辞書をセット
$HOME/.skk を作成。

; SKK-JISYO.L だけ使用する場合
;(setq skk-large-jisyo "~/misc/skk_jisyo/SKK-JISYO.L")

; 複数の辞書を使用(使用するものだけコメントアウト)
(setq skk-search-prog-list
      (append
       '((skk-search-jisyo-file skk-initial-search-jisyo 0 t)
  (skk-search-jisyo-file skk-jisyo 0 t))
       (let ((path "~/misc/skk_jisyo/"))
  (mapcar #'(lambda (x)
       `(skk-search-jisyo-file ,(concat path (car x)) ,(cdr x)))
   '(("SKK-JISYO.L" . 10000)
;     ("SKK-JISYO.assoc" . 10000)
;     ("SKK-JISYO.edict" . 10000)
;     ("SKK-JISYO.fukugo" . 10000)
;     ("SKK-JISYO.fullname" . 10000)
     ("SKK-JISYO.geo" . 10000)
;     ("SKK-JISYO.station" . 10000)
     ("SKK-JISYO.jinmei" . 10000)
;     ("SKK-JISYO.propernoun" . 10000)
;     ("SKK-JISYO.okinawa" . 10000)
;     ("SKK-JISYO.law" . 10000)
;     ("SKK-JISYO.pubdic+" . 10000)
     )))))

emacs を再起動すれば、C-x C-j で skk が起動できる。

編集後記

README を読みながら作業すればいいから、わざわざこんな手順起こす必要はないと思った。
あと、emacs の html-mode はやはり秀逸。

0 件のコメント: