MozReplでvimからFirefoxにリロードさせたりする

MozReplはlocalhost:4242にtelnet接続してFirefoxを制御するアドオン。随分前からある物だけど、vimの環境見直しの一環として入れてみました。

公式のaddonsではMozLabに同梱されていますが(MozLab :: Firefox Add-ons)、Firefox3.5には対応していないようです。バージョンチェック無視して入れてみようかとも思ったけど、Home - mozrepl - GitHubを見るとMozLabに入ってるのは古いバージョンらしい。なので、githubから1.0-Releaseをインストール。

malaさんがabout:configで設定を変更する方法を紹介してたけど、今のバージョンだとFirefoxの「ツール」「MozRepl」から簡単に設定出来るようになってました。

で、vimからRubyが使えるようにしておいて、.vimrcにこんな感じで書いてみた。

function! ReloadFirefox()
    if has('ruby')
:ruby <<EOF
require 'net/telnet'
telnet = Net::Telnet.new({
    "Host" => "localhost",
    "Port" => 4242
})
telnet.puts("content.location.reload(true)")
telnet.close
EOF
        echo "Reload command was sent to Firefox."
    else
        echo "Ruby is not available."
    endif
endfunction
nnoremap <silent> <Leader>r :<C-u>call ReloadFirefox()<CR>

Ruby以外でやる場合は、ここにPerlとかPythonスクリプトがあるみたい。