(2019-03-07 追記)
.emacs.d 大掃除をやってて気づいたのですが、このハックは現代の Emacs + magit では不要になっていました。
GNU Emacs 26.1 (build 1, x86_64-apple-darwin18.0.0, Carbon Version 158 AppKit 1671) of 2018-11-18
magit-20190306.413
(以下 2013-10-11 時点での投稿)
2ヶ月ほど前に magit のコミット周りの実装が大きく変わりました。それまではコミットメッセージの入力をミニバッファで行っていましたが、この変更に伴い git-commit-mode というメジャーモードを用いて入力、つまり一つのバッファを占有して行うようになりました。
本来この git-commit-mode は 同じ ウィンドウ内の別バッファに開くことが意図されており、Linux 版ではこの通りの挙動を示します。
しかし、Mac 版 (Cocoa) Emacs では 新しく ウィンドウを開いて(もう一つ Emacs を起動して)そこに git-commit-mode を開くという挙動を示し、大変面倒くさい感じになっていました。
2ヶ月間この挙動に悩まされていましたが、この度改善するための設定を発見したため、ここに共有します。
Mac でも同一ウィンドウ内でコミットアクションを完結させる
/Application に Emacs.app を置いた場合は
(set-variable 'magit-emacsclient-executable "/Applications/Emacs.app/Contents/MacOS/bin/emacsclient")
Homebrew で Emacs をインストールした場合は
(set-variable 'magit-emacsclient-executable "/usr/local/Cellar/emacs/24.3/bin/emacsclient")
を init.el などに追記しましょう。
これで次回から git-commit-mode は 同じ ウィンドウ内の別バッファに立ち上がるようになります。c を2回押したあと、ウィンドウを切り替えてメッセージ入れて C-c C-c したら手動でウィンドウを閉じる・・・といった煩わしさから開放されます。
Emacs + magit で、さらなる作業効率の向上を!
ついでに僕の .emacs.d は dtan4/dot.emacs.d に置いてあります。
参考
上記挙動に関する Issue #862 に投稿された aisipos 氏の投稿