Vim でファイルを保存すると Firefox がリロード OSX 版

はじめに、TextMate の HowTo ページを参考にして AppleScript をコピって見た。

tell application "Firefox"
  activate
  Get URL "JavaScript:window.location.reload();" inside window 1
end tell

ところが・・・「inside window 1」の辺りの指定が誤っているのか、新規のタブを開いてしまい、使い物にならない。
しばらく調べたが、FirefoxAppleScript 実装の情報を見つける事ができず断念。

結局、下記のように「System Events」を使う事にした。

tell application "Firefox"
  activate
end tell

tell application "System Events"
  if UI elements enabled then
    key down command
    keystroke "r"
    key up command
  end if
end tell

面倒な事に「システム環境設定 > ユニバーサルアクセス」の「補助装置を使用可能にする」にチェックを入れないと動作しない。

これを、適当な名前で保存して、osascript コマンドで実行する。
下記は、.vimrc の設定例。

map ,t :w<CR>:!osascript ~/bin/reload_firefox.scpt<CR>

こうしておくと、「,t」で保存しつつ Firefox のリロードとなる。

訂正

シェバン行に osascript を入れられなかったので、下記のようにした。

#!/bin/sh
`osascript << EOS
tell application "Firefox"
  activate
end tell

tell application "System Events"
  if UI elements enabled then
    key down command
    keystroke "r"
    key up command
  end if
end tell
 
tell application "Terminal"
  activate
end tell
EOS`

ついでに、Firefox の更新後に Terminal をアクティブに戻すようにした。
本来であれば、元々アクティブであるアプリケーションの名前を取得し、そこをアクティブにしたのだが・・・方法調査中。
(どなたか識者の方、教えて下さい m(_ _)m)