2016年9月11日日曜日

このアプリケーションで開く

 ファイルタイプをアプリケーションと関連づけてあると便利だ。ファイルをクリックすると、そのアプリケーションで開いてくれる。以上、同義反復。
 しかし、Emacsをアプリケーションに割り当てると、二重に起動してしまう。そんなときのために、emacsclientがある(たぶん)。
 ところが、Macだとそのemacsclientがアプリケーションとして割り当てることができない。emacsclient.appではないからだろう。しかたなく、Emacsを割り当てていたのだが、やはりふたつ開く。フルスクリーンで使っているのでわずらわしい——ただ、そのEmacsを終了させると元々、立ち上がっていたEmacsも終了してしまったのであれ、とは思っていたのだが(伏線)。

 方法は

・emacsclientのapp化
・強引に裏からemacsclientを関連づける
・あきらめる

 で、app化は好みではないので——ググってできるらしいことはわかったのだが——、やめにして裏からの方法を探してみた。SetFileでできそうだった。が、弾かれた。

bash-3.2$ SetFile -c emacsclient tmp.el
Invalid type or creator value: 'emacsclient'
bash-3.2$

 あかーん。
 このレベルでappであることを求められてはたぶん手はねー。
 あきらめかけたのだが、要件を考えると、Emacsが二重起動しなければ、いいわけで、何か手はないか、とググってみた。=>emacs23で新しいファイルを開いた時にemacsを複数起動させない

;;複数ウィンドウを開かないようにする
(setq ns-pop-up-frames nil)

 というのを見てあっ、と気づいた。そもそもEmacs.appは二重起動してなかったってことに。だから二つ目を終了させると、一つ目のEmacsも終了したように見えていたのだ(伏線回収)。
 だいたい、ns-* ってことはMac用の設定じゃないか。

 これでEmacsからopenコマンドを使って開いてもEmacsで開くようになる(同義反復?)。