意識の高いLISPマシン

藤原惟/すかいゆき(@sky_y)の技術用ブログ

Cocoa Emacs: emacsclientをAppに変換する

Emacsは常に起動させておけ、とEmacs使いは言います。
私もそれに従って、常にEmacsを起動させ、テキストファイルはほぼ全てEmacsで編集するようにしています。


Mac OS XのFinderでテキストを開きたい時は、ダブルクリックで起動済みEmacsを開きたいものです。
本来、このような用途では、emacsclientという実行ファイルで起動するのですが、
Cocoa EmacsのemacsclientはUnix実行形式のため、Finder上で設定することが出来ません。
(設定できるのはアプリケーション(.app)のみ。)


Emacs.appなら設定できますが、私の環境では
・別ウィンドウで開く
・色が変(黒背景のはずが、白背景になる)
という現象が起こり、かなり不便です。


そこで、Platypus (Platypus | Sveinbjorn Thordarson) というアプリケーションを使って、
ファイルをダブルクリックしたら、起動済みのEmacs.appのバッファ内で「期待通りに」開くようにします。
PlatypusはシェルスクリプトをMacのアプリケーション(.app)に変換してくれるツールです。
これを使って、emacsclientを.appに変換します。
Yakitara: EmacsClient.app を参考にしました。)


1. 以下のようなシェルスクリプトを作る。
便宜上、 /Users/homu/bin/emacsclient.sh と名前を付ける。

/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n "$1"

2. 以下の図のように設定する。

3. Finderで開きたいファイルを右クリックして、Get Info(日本語だと「情報を見る」だったはず、あるいはcommand+i)。
開くアプリケーションを指定する部分で、EmacsClient.appを選択する。
このとき、"Always open with"にチェックを入れる(日本語は略)。

これで、めでたく「期待通りに」起動済みEmacsでファイルが開けます。