Cocoa Emacsで、既存のウインドウにファイルを開く

Emacs 23.4をビルドしてみるで、最新のEmacsをMacにインストールすることができた。

テキストファイルをEmacsに関連づけていると、新しいファイルをFinderなどで開く際に、新しいウインドウで次々開いてしまって不便なことがある。
Finderでテキストファイルをダブルクリックしたときに、Emacsが起動しているとそのEmacsでファイルを開いて欲しい。

それを実現するのがemacsclientだ。実はEmacs 23.4をビルドしてみるでインストールしたEmacsの中にもemacsclientが入っているのだけど、unixコマンドとなっていて、appパッケージになっていない。

そこで、Platypusを使うとunixコマンドをappパッケージにすることができるので、emacsclientをMacのアプリケーションにしてみた。

情報元はCocoa Emacs: emacsclientをAppに変換する
ただ、上記サイトの方法だと、Emacsが起動していない場合にEmacsClientで開こうとすると問題があるので、起動スクリプトを次のように変更した。

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

これで、Emacsが起動していない場合はEmacsを起動してファイルを開くことができる。

変換したアプリをあげておくので、解凍してアプリケーションにコピーすればOK。
EmacsClient.app.zip

ファイルの関連づけを変更するには、Finderで変更したいタイプのファイルを右クリックし、「情報を見る」を選択する。「このアプリケーションで開く」の項目があるので、EmacsClientを選択し、「すべてを変更」ボタンを選択する。
これで関連づけを変更することができる。

なお、emacsclientを使う場合には、serverの設定をしておかなければならない。
.emacsなどに次の設定を追加しておこう。

(require 'server)
(unless (server-running-p)
  (server-start))

No Comments

Post a Comment

コメントを投稿するには、下の計算の答えを入力する必要があります。答えは半角数字で入力してください。 * Time limit is exhausted. Please reload the CAPTCHA.