かわちょでぶろぐ

Visual Basic .NET を……、強いられているんだ! → 強いられなくなった! → ふたたび、強いられているんだ! → 転職!

Homebrew で Cocoa Emacs 24.3 を入れた

新しい Windows 環境を作るついでに、Mac の方の Emacs 環境も再構築。

検索してみたら Homebrew の Emacs に、インライン日本語入力などの patch が取り込まれて、コマンド一発で簡単に入れられるようになっとった。

Homebrew

Homebrew 自体のインストール方法や使い方は公式サイトなどを参照。

Homebrew でインストールしたコマンドは /usr/local/bin にシンボリックリンクが作られるので、そこに PATH を通しておく。

Homebrew - Cocoa Emacs

日本語化パッチや distnoted が原因で Emacs が落ちる問題へのパッチなども Homebrew の Emacs には取り込まれているよう。楽ちんだ。

$ brew install --cocoa --japanese --with-gnutls -srgb emacs
$ brew linkapps
  • ↑上のページに書かれているけど、ダイアログが閉じられなくなる問題があるようなので、ダイアログを使わないように設定しておく。
    • 前からダイアログは安定してなかった。
    • ダイアログを使うつもりがなくても、マウスでメニューから何かやったときや、×ボタン押して閉じるときには、プロンプトがミニバッファじゃなくてダイアログで出てくるので注意。
(setq use-dialog-box nil)

Cocoa Emacs 用の設定

その他、Cocoa Emacs 用に特別にやってる設定は、

  (setq default-input-method "MacOSX")

  ;; "Convert yen to backslash for JIS keyboard."
  ;; (mac-translate-from-yen-to-backslash)

  ;; ミニバッファを開いたときに英字にする(閉じてもモードは戻らない)
  (add-hook 'minibuffer-setup-hook 'mac-change-language-to-us)

  ;; Shift キーがシステム・IM に渡るようにする
  (mac-add-key-passed-to-system 'shift)

  ;; 起動したら英字にする
  (add-hook 'after-init-hook 'mac-change-language-to-us)

  ;; Input Source ごとのカスタマイズ
  ;; - 一覧は (mac-get-input-source-list) で取得できる。
  ;; - ATOK はバージョンごとに ID が変わる。年に一回なのでとりあえず手動更新で対応。
  (mac-set-input-method-parameter "com.justsystems.inputmethod.atok27.Japanese" `title "あ")
  (mac-set-input-method-parameter "com.justsystems.inputmethod.atok27.Japanese" `cursor-color "darkred")
  (mac-set-input-method-parameter "com.justsystems.inputmethod.atok27.Roman" `cursor-color "black")
  • mac-translate-from-yen-to-backslash は JIS キーボード用の設定コマンドのようだが、英語キーボードしかないので呼んでない。
  • Command キーを Meta キーにする設定いれた方が打ちやすいかも。
  • ミニバッファを開いたときには英字にしてるけど、これだけだと M-<ESC, < ってやる場合は「<」になってしまうので別途対応が必要そうだなぁ。
;; Mac で GUI から起動しても、シェルの PATH 環境変数を引き継ぐ
;; - http://qiita.com/catatsuy/items/3dda714f4c60c435bb25
(when (memq window-system '(mac ns))
  (exec-path-from-shell-initialize))

あと、フォント設定は次のページを見て前に設定したのをそのまま使い続けている。

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)