Alfredでファイルを選択し、"Open with..."でファイルを開く時、emacsclientを指定したい。
が、Alfredが.appなファイルしか拾ってくれないみたいなので、候補にemacsclientが出てこない。
ということで、emacsclientを.app化してみた。
参考にしたのはこのブログ(というか、そのまんま(- -;;)
環境はMac OS X 10.9.3。それ以前で使えるかどうかは未確認です。
Automaterを使う
- Automaterで新規ワークフローを作成する。書類の種類は"アプリケーション"を選択
- アクションは、"シェルスクリプトを実行"を選択
- 入力の引き渡し方法は、"引数として"を選択
- 以下のシェルスクリプトを入力して、保存。保存先はAlfredの検索対象になってる場所に
for f in "$@"
do
emacsclient --alternate-editor="" -n "$f"
done
わたしはMacPortsのemacs-appを使ってるので、emacsclientはそちらのが実行されるようにフルパスで指定してます。
動作確認のためにAutomaterで実行しようとすると、
このアプリケーションは Automator で実行する場合、入力を受け取りません。
とお叱りのダイアログが。対処法はそのダイアログに書いてある通り。
"指定されたFinder項目を取得"アクションを前に追加して適当なファイルを追加してやる。
このアクションのオプションで"このアクションの入力を無視"にチェックを入れてから保存すれば、実際にアプリとして実行する時には無視されるようになる。
これで晴れて"Open with..."から選択して、Emacsで指定されたファイルが開くことが出来た。