MacのEmacsの違いを調べて使うものを選ぶ
Macで使えるEmacsはいくつかありますが、それらの違いについて 情報は多くありません。
マイナーなEmacsをテキストエディタに選んでいる方でも意外とEmacs自体の 違いはあまり気にされないようです。
少し調べてみると、IMEパッチというのが重要ぽかったり、brewでこうやってインストール するといいよ、ということはわかるのですが、IMEパッチでどう変わるのかというのがわかりませんでした。
なので、自分で簡単に違いを調べてみました。結論は最後らへんにありますので適当に飛ばしてください。
候補となるEmacsバリエーション
Homebrew + IME-patch版
日本のMac使いでは一番有名なものだと思います。素のEmacsにIMEパッチを あてたものという認識です。
どうも素のEmacsでは日本語入力自体に問題があり、それに対して パッチを当てるのと、IMEの状況を制御する拡張が入っているようです。
ということは、他のEmacsとの比較は日本語入力の違いが肝になりそうです。
Homebrew+IMEパッチ版Emacsのインストールは次のようにしました。
1 |
brew install --japanese --cocoa --with-gnutls -v emacs |
(記事公開時は–srgbオプションを指定していましたが、現在は必要ないとの報告がありましたので削除しました。pogin503さんありがとうございます))
ちなみに、私が今現在使っているのはこれです。 (以前Emacs Mac Portの記事書いておいてなんですが)
2014/12/22追記:Emacs Mac Port版に日本語入力モード制御のサポートが追加されたのでそちらを使っています。
Emacs Mac Port版
かなりマイナーぽい、Emacs Mac Port版です。MacPortsで入れたものとは違います。
Yamamoto Mitsuharuさんという方が 保守しているらしく、様々な拡張がされています。
気になる違いを個人的基準で抜粋・適当翻訳してみました。
- lispでアップルイベントをハンドル
- 内蔵辞書対応
- 見た目の改良
- フルスクリーンサポート
- ImageMagick対応
- ピクセル単位のスクロール
- 新しいトラックパッドのイベント(ピンチin/out等)
- ことえりの逆変換
- アップル絵文字
- 他たくさんの変更
詳しい変更箇所は次の場所にまとまっています。
以前はオリジナルソースに自分で配布パッチを当ててビルドする必要がありましたが、今は パッチが当たった状態のソースがgithub管理となっており、ビルド済みバイナリも配布されています。
ソースはここ。
バイナリはここ。
今回はEmacs 24.3 with emacs-24.3-mac-4.8を利用します。
細かい経緯はわかりませんが、githubは中国人?の方のページで公開されていますね。 たぶんここが本家だと思うのですが・・・。
マスターチーフのヘルメットをかぶっているので悪い人ではないと思います。
一応、本家の本家ぽいパッチ配布場所も記します。
Aquamacs
Mac用にいろいろいじられているっぽいEmacsです。Emacs Mac PortよりもMacぽくあるようにカスタマイズされているような気がします。
アイコンがオリジナルと違って若干かわいい牛頭になってたり、いくつかのemacs lispが同梱されてたりしています。
Emacs情報wikiではしれっと紹介されてたりしますが、ブログ等で使っている 人はみかけませんね・・・。
試したバージョンは3.0aとなります。
素のEmacs
オリジナルのEmacsそのものです(たぶん)。
そのままダウンロードすると結構前のバージョンだったので、Other Versionから 最新のEmacs-pretest-24.3.92-universal.dmgを落として試します。
呼び分け
ややこしいので短く表記します。
- Homebrew + IME-patch版は、以下brew版
- Emacs Mac Port版は、以下EMP版
- 素のEmacsは、以下オリジナル版
- Aquamacsは以下Aqua版
brew版とオリジナル版は基本的に同じなので、まとめて通常版と 呼ぶこともあります。
すべて’-Q’オプションを付けて起動し、素の動作を見てみました。
about画面で比較
about-emacsを呼び出してみます。
オリジナル
いつもの同じ。 EmacsロゴがRetina対応ではないので若干ぼけています。
バージョンはこんな感じ。
1 2 |
GNU Emacs 24.3.92.1 (x86_64-apple-darwin13.2.0, NS apple-appkit-1265.20) of 2014-06-27 on builder10-9.porkrind.org |
brew
バージョン表記以外、基本的にオリジナルと同じ・・・ですがaboutではなぜかEmacsロゴが出ず、普通のテキストバッファでした。 オプション間違えたかな・・・。
バージョンもオリジナルと基本同じ。
1 2 |
GNU Emacs 24.3.1 (x86_64-apple-darwin13.2.0, NS apple-appkit-1265.20) of 2014-06-17 on MBPR.local |
EMP
EmacsロゴがRetina対応でくっきりシャープです。
EMP版はアイコンが若干今風になっていて、Retina対応、説明付きとなっています。
あと、スクロールバーが出ていません。画面内に収まっているとスクロールバーが出ないようです。 ドラッグしてもスクロールしません。フレームを小さくするとスクロールバーが出てきます。
気持ちだけフレームが縦長です。あと、フレーム名が他のものはバッファ名ですがこれだけ「Emacs@MBPR.local」となってます。
EMP版だけ何も設定しなくてもコマンドキーがメタになっています。
バージョン表記ではNSではなくCarbonとAppKitを使ってますよ、ってことなっています。たぶん。
1 2 |
GNU Emacs 24.3.1 (x86_64-apple-darwin11.4.2, Carbon Version 1.6.0 AppKit 1138.51) of 2014-04-04 on Yukikaze.local |
Aqua
これだけ新フレームで出ました。Aquaでは基本的にバッファはフレームで 開くことになっているかもしれません。これもフレームが若干縦長です。
ロゴがRetina非対応で何故か左寄せ、説明文も変な位置で改行が入っており、 見た目が悪いです。なんでこんなことに・・・。
Aqua版もRetina対応のアイコンで説明付きですが、ちょっとださいんじゃないですかね。
バージョン表記はオリジナルにプラスαした感じですね。
1 2 3 4 |
nilGNU Emacs 24.3.50.2 (x86_64-apple-darwin13.0.0, NS apple-appkit-1265.00) of 2014-01-21 (Aquamacs-3.0a) on watson Copyright (C) 2014 Free Software Foundation, Inc. |
使用しているウィンドウシステム
Emacsを載せているGUIシステムに違いがあります。
window-systemの値を見ると、EMP版だけ’mac’、他は’ns’となっていました。
多分これが原因でEMP版はinit-loader.elでMacと判定されません。
(2014/12/22追記:init-loader.elでEMP版もMacと判定されるようになりました)
バッファのスクロール比較
Emacsユーザーは動作速度にある程度寛大だと思いますが、 編集の快適さは動作速度に大きく依存します。
なので、バッファのスクロールで処理速度を試験します。 バッファの中身は日本語チュートリアルにしました。
行のスクロール幅を1にしておきます。
1 2 3 |
(setq scroll-conservatively 35 scroll-margin 0 scroll-step 1) |
ホイールスクロール
これはEMP版がすごい。テキストエディット.appのように、すすーっと流れます。 だんだん速度が遅くなるのもMacぽい。
ほかは連続半ページ送りのように見え、あまり見た目はよくありません。
Emacs使いの人はホイールスクロールはあまり使わないかもしれませんが、 Mac使い的には優越感を感じるところです。
これだけ見たらEMP版になるかな?
カーソルキー、ページスクロール
まず、テスト環境のキーリピート速度はあげています。
カーソル下押しっぱなしでスクロールするとわかるのですが、EMP版は速くて滑らかです。
通常版は「ご ご ご ごご ごごごご」のような感じで、Aqua版とEMP版は「ごごごごご ごごごご」みたいな感触でした。 わかるかなー。
C-v押しっぱなしにしてみると、これでも明らかにAqua版、EMP版の方が速いことがわかります。
ここでもEMP版強し。使っていると結構さくさく感が違います。
日本語周り
IMEパッチのIME制御
IMEパッチをあてると日本語関連で様々な拡張が使えるようです。
たとえばIMEの日本語入力モードと英語入力モードでカーソルの色を変えたりできます。
例えばこんな感じ。
1 2 3 |
(mac-set-input-method-parameter "com.google.inputmethod.Japanese.base" `title "あ") (mac-set-input-method-parameter "com.google.inputmethod.Japanese.base" `cursor-color "red") (mac-set-input-method-parameter "com.google.inputmethod.Japanese.Roman" `cursor-color "blue") |
かなり便利ですが、まあなくても困らないかもしれません。
日本語入力
Windows版の素のEmacsだとIMEパッチがなければインライン変換できなかった記憶があります。別ウィンドウで変換することになり、とても使いづらいものになっていました。Windows版はIMEパッチをあてたGnupack版がいいと思います。
MacでもIMEパッチが当たってないものはだめなのかなあと思いましたが、日本語入力は どれも同様にインライン変換できました。

ちょっと意外です。IMEがGoogle日本語入力だからかもしれません。
(ここでbrew版がなぜかかわいい日本語フォントになってるのに気づく・・・ この問題ですね http://minus9d.hatenablog.com/entry/20131103/1383475472)
日本語入力中のコマンド
では次に日本語入力中にコマンドを入れるとどうなるか調べます。
IMEをオンにして’C-x 2’を入力し、バッファを分割します・・・ ここでbrew版というかIMEパッチが必要な理由がわかりました(ここまで本当にEMP版で決まりと思ってた)。
IMEパッチがあたっていないEmacsでは、prefix後2文字目の’2’の入力が IMEにとられて変換中文字になってしまうのです。

これは非常に困ります。。
その場で気付いてIMEを解除しようとしても、文字入力中なので変更できずに さらに変な文字を打ち込んでしまうというストレスフルなことになりました。
これはもう他のバリエーションと比較にならないですね。IMEパッチ版じゃないとだめです。
(2014/12/22追記:EMP版にもIMEパッチと似た機能が追加されました。EMP版でも上のような問題は回避できます。→Emacs Mac Portに日本語入力関連の機能が追加))
結論:MacではIMEパッチをあてたEmacsを使おう
というわけで、IMEパッチをあてないと日本人にはつらすぎるということが わかりました。
やっぱりみなさんそのへんわかってbrew+IMEパッチ版使っているんですね。 でもまあ比較の結果IMEパッチの恩恵というかありがたさがわかってよかったです。今まで何も考えずに周りが使ってるからという理由でbrew+IMEパッチ版使っていました。
他のEmacsもいろいろ違いがあって楽しかったです。
しかしEMP版の速さも捨てがたい・・・。日本語なんて使わないぜ、って人はEMP版がいいんじゃないでしょうか。そういう人はCUI版を使いそうな気もする(偏見)
どなたかIMEパッチをEmacs Mac Portに当ててもらえないでしょうか・・・。
私はちょっと試しましたが諦めました。
そもそもあのパッチは’ns’版のソースを前提にしており、Emacs Mac Portのソースに無理やりあてても、それらはコンパイルされないソースだったというので心が折れたので。
結論2:MacではIMEパッチ版かEMP版のEmacsを使おう
2014/12/22追記
Emacs Mac Portに日本語入力時のサポート機能が追加されました。
若干IMEパッチと挙動が違いますが、一番の問題は解消されるのでこちらでも問題なく使えそうです。
おまけ
brew版はなぜかsolarized-darkテーマを適用するととても暗いです。 画面設定を暗くしているいせいと思ってましたが、いろんなEmacs並べると これだけ暗すぎます。ちなみにiTerm2のsolarized-darkも同じ色になってます。
sRGBオプションが怪しい?