ずっとVimを使って書いているのですが、いちいちブラウザチェックの為にリロードするのがめんどくさくてかないません。
皆さんそう思っているようで、
CSSを保存したときにブラウザを更新 mac+applescript+emacs+safari
というエントリを見つけました。
Emacsウラヤマシイ!Vimでもやりたい!
ということでvimrcとAppleScriptを連携させてやってみました。
しかも、
Mac+AppleScript+Vim+Safari+Firefox+Opera
という感じで、Safari & Firefox & Operaも同時更新させるようにしました。
まずはAppleScript。
/Applications/AppleScript/スクリプトエディタを起動し、reload_browser.scptという名前で下記のコードを保存します。
reload_browser.scpt
tell application "Safari"
do JavaScript "location.reload()" in document 1
end tell
tell application "Firefox" to activate
tell application "System Events" to keystroke "r" using {command down}
tell application "Opera" to activate
tell application "System Events" to keystroke "r" using {command down}
tell application "Vim" to activate
コードは$HOME/bin/に保存してます。
FIrefoxやOperaで直接Javascriptを実行する方法がよくわからなかったので、System Eventでキー押させてます。
リロードが終わったらVim(僕はGVim使ってるので)にactivateしてフォーカスを戻す。
後はこれをvimから叩くだけ。
:!osascript /Users/cohtan/bin/reload_browser.scpt
ぶっちゃけ、これでは使い勝手が悪いので、CTRL+Gにマッピングすることに。
Vimのどちらのモードからも使えるよう下記の設定を.vimrcに追加。
imap <C-G> <ESC>:w<CR>:!osascript /Users/cohtan/bin/reload_browser.scpt<CR><CR>a
nmap <C-G> :w<CR>:!osascript /Users/cohtan/bin/reload_browser.scpt<CR><CR>
これだけで、いつどんな時でもCTRL+Gで保存&各ブラウザリロードが実現!
快適っすよー!
1 件のコメント:
素敵なAppleScriptありがとうございます。
AppleScriptと関係ない質問で申し訳ないのですが、Firefoxがリロードされた時“ファイルが見つかりません”とエラー表示されるのですがこれはどのように解決したらいいのでしょうか。。
コメントを投稿