Vim でファイルを保存すると Firefox がリロード OSX 版
はじめに、TextMate の HowTo ページを参考にして AppleScript をコピって見た。
tell application "Firefox" activate Get URL "JavaScript:window.location.reload();" inside window 1 end tell
ところが・・・「inside window 1」の辺りの指定が誤っているのか、新規のタブを開いてしまい、使い物にならない。
しばらく調べたが、Firefox の AppleScript 実装の情報を見つける事ができず断念。
結局、下記のように「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)