<< 2006/09/ 1 2 3 1. 葬儀tips
2. emacs で 3タブ
4 1. viewset という考え方
5 6 7 1. Emacs22 の font-lock の色使いが terminal で再現できなくて意味不明
8 1. (たぶん)いちばん短い phpdoc 生成の覚え書き
9 1. iCab 3.0.2 の getElementsByTagName は自分自身を含むらしい
10 1. screen の multiuser mode を1台のマシン上で1人で実験する
11 12 13 14 1. Wiki でゲームブックって作れるな
15 1. xCHM 1.9 ANSI 版がいい感じ
16 1. また Maxtor 逝った
17 18 19 20 21 22 1. るびま16号のインタビューが面白い
23 24 25 26 1. Terminal のフォント放浪 → Monaco + ヒラギノに落ち着く
27 28 1. 画面の広さを取り戻せ
29 1. Finder から一発で Terminal 上の Emacs を起動する
30 >>
トップ «前の日記(2006-09-28) 最新 次の日記(2006-10-01)» 編集

2006-09-29 [長年日記]

_ Finder から一発で Terminal 上の Emacs を起動する

わたしゃゴリゴリの Terminal 使いですが、何がなんでもキーボード操作じゃなきゃやだ、というわけでもなくて。マウスでポチポチしてたりするときだって当然あるわけです。ファイルをネットワーク越しに転送してきてとりあえず何か開いてみたい、みたいなときとかね。Terminal で cd して less hoge とかすればいいわけですけど、なんとなくドラッグ&ドロップで開きたいときだってあるわけですよ。例え常に Terminal ウィンドウが開いていたとしてもです。開いてる Terminal に emacs と打って目的のファイルをドロップしてフォーカスを Terminal に持ってきてリターン押すだけやん!と言われてもです。

そんなときにね、実は OSX にはコレ!っていうページャやエディタってないわけですよ。どうもどれもこれもイマイチでね。日本語の自動判別がダメだとか設計が古すぎるとか対応しているプログラミング言語が少ないとかそもそもプレインテキストが扱えないだとか、不思議な現象に悩まされることが多いわけです。一応 mi を常備してますけど、なーんかしっくりはこないんですよ。

で、Emacs 使いとしてはじゃあ Carbon Emacs にすれば?みたいな気もしてくるわけですが、Carbon Emacs は先日述べた理由で使いたくない。つか標準の Emacs のほかに Fink の Emacs が入っているのに、そのうえ Carbon Emacs 入れろってか。なんでただでさえ巨大な Emacs を3つも入れないかんのじゃ。

さてどうするか。

閃いたのが「Terminal 上で Emacs を使って目的のファイルを開くって作業をコンテクストメニューとかドラッグ&ドロップでできたらステキ」作戦。

じゃあ、ということで wrapper になりそうなアプリを探すんだが、これが思うような動作をするものってないのね。Terminal にこれこれこう言うコマンドを与えて実行、っていう指定ができて、かつドロップされたファイルを引き数で与えることができればそれでいいのに。*1

うーん。AppleScript を使えばできそうだなぁとは思うけど、あれ書くの楽しくないし、もう書いたの1年以上前だし…。

[2006-09-30 追記]でけた。ドロップレットにするには Xcode で Droplet プロジェクトにせんといかんのね。たったこれだけなのに大げさだなぁ。

-- drop-to-emacs

on idle
  (* Add any idle time processing here. *)
end idle

on open names
  set filenames to ""
  repeat with str in names
    copy filenames & " \"" & (POSIX path of str) & "\"" to filenames
  end repeat
  tell application "Terminal" to do script ("emacs" & filenames)
  quit
end open

on idle のときに何か書くべきなのかとかさっぱり分かっていないので放置。

動作としては

  1. 新しい Terminal を起こして
  2. そこで emacs を使って全部のファイルをいっぺんに開く

ただし、Terminal が起動していない場合は、Terminal を起動した際に自動的に作られる新しいウィンドウとは別に自分で Terminal ウィンドウを作成するので、

2個のウィンドウができる

という不細工な動作をする。まぁいいかーと。Terminal そのものはいつも起こしてるから。

しかし、、、AppleScript を書くのは気持ちよくない。いろんな予約語(演算子も予約語みたいなもんだ)があるのに、それいっぺんに確認できるリファレンスないし。つか XCode なんだからリファレンスとか補完とか自分でやってくれりゃいいのになんもしてくんないし。なんか設定足りんのかなぁ。

ま、とにかくできあがったアプリを Dock に置いて完成。いいじゃないの。いーじゃないの。

*1 Terminal に指定コマンドを与える設定を Terminal そのものから「名前を付けて保存」できるんだけど、このアイコンにテキストファイルをドロップすることはできない。