32
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

Emacs Mac PortをHomebrewからインストールする

今まで Homebrew 標準の Emacs に IME パッチを当てて使っていたんですが、 Emacs Mac Port の方が良いという噂を聞いたので乗り換えてみました。

具体的には、minibuffer 入力時に IME を勝手にオフにしてくれる機能について期待して導入してみたのですが、実際に使い勝手が良くなった気がします。

インストール手順(その1)

$ brew tap railwaycat/emacsmacport
$ brew install emacs-mac --with-modern-icon

/usr/local/Cellar/emacs-mac/emacs-24.5-z-mac-5.10 のようなディレクトリにインストールされるので、brew linkapps するなり、よしなにランチャーに登録したりします。

インストール手順(その2)

Homebrew Caskを使うという手もあります。Homebrew Cask設定済みとして、次のようにすればインストールできます。

$ brew tap railwaycat/emacsmacport
$ brew cask info emacs-mac

ただし、こちらでインストールするとアイコンを選択できないという問題があります。

設定

インストール後、init.elに次のような設定を追加します。

  ;; Emacs Mac Port 用設定
  ;; ミニバッファで入力する際に自動的にASCIIにする
  (when (fboundp 'mac-auto-ascii-mode)
    (mac-auto-ascii-mode 1))
  ;; カーソルの色を変える
  (when (fboundp 'mac-input-source)
    (defun my-mac-selected-keyboard-input-source-chage-function ()
      "英語のときはカーソルの色をdim grayに、日本語のときはbrownにします."
      (let ((mac-input-source (mac-input-source)))
        (set-cursor-color
         (if (string-match "\\.Roman$" mac-input-source)
             "dim gray" "brown"))))
    (add-hook 'mac-selected-keyboard-input-source-change-hook
              'my-mac-selected-keyboard-input-source-chage-function))

上記の "\\.Roman$" の部分はATOK用なのでご注意ください。

Emacs Mac Portとは

Emacs Mac Port というのは Yamamoto Mitsuharu さんの手による Emacs へのパッチで、公式配布元は下記です。 emacs-devel ML でアップデートのアナウンスがされているようです。

これをXin Xuさん(@railwaycat)が Homebrew で簡単に扱えるようにしてくれたようです(参照:https://github.com/railwaycat/homebrew-emacsmacport )。つまり、 Homebrew からのインストールは非公式ということになります。

参照

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
32
Help us understand the problem. What are the problem?