creload.vim

Brogramming with Tom
今回は、VimからChromeを自動リロードする方法の紹介です。プレビューなどに便利です。

photo credit: ryanoshea via photopin cc

creload.vim



creload.vimの動作に必要なもの



タイトル 内容
creload.scpt ChromeをリロードするAppleScript
watchmedo ファイルの変化を監視し、変化があれば、一定の動作を選択できるコマンド
pkill タイトルでプロセスを停止できるコマンド
creload.vim Chromeをリロードするコマンドを定義するVimScript



creload.scpt



tell application "Google Chrome" to reload active tab of window 1



ちなみに、以下のようにも実行出来ます。

$ osascript -e 'tell application "Google Chrome" to reload active tab of window 1'



watchmedo



sudo easy_install -U setuptools

sudo easy_install pip

sudo pip install watchdog



pkill



brew install proctools



creload.vim



Chromeで開くファイルを指定する場合 :
command -nargs=1 -complete=file ChromeReload silent !open -a Google\ Chrome <args> && watchmedo shell-command -c "osascript $HOME/bin/creload.scpt" $HOME/ &

command! -bar ChromeReloadStop silent !pkill -f watchmedo



ちなみに、現在開いているファイルをChromeで開く場合は、以下のように書きます。


現在開いているファイル :
command! -bar ChromeReload silent !open -a Google\ Chrome "%" && watchmedo shell-command -c "osascript $HOME/bin/creload.scpt" $HOME/ &

command! -bar ChromeReloadStop silent !pkill -f watchmedo



これで、 :ChromeReload [ファイルパス]で指定したファイル(ホームフォルダ以下限定)を Chrome で開き、該当ファイルを保存すると、Chrome がリロードされるようになります。




また、ホームフォルダの監視を止めたい場合は、 :ChromeReloadStopを実行します。


ちなみに、Chromeでのプレビューが文字化けしてしまう場合は、Chromeのエンコードの設定(表示 > エンコード)を utf-8にしてください。




Chromeのエンコードのデフォルト設定を変更する場合は、以下のように設定します。




解説がちょっとわかりにくいという方は、こちらの記事を参考にしてください。