福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

作成日:2008/10/05
タグ:,

AutoHotkey で Vim風操作の Firefox

めちゃくちゃに更新をサボっている管理人です m(_ _)m。

Firefox に AutoPager なるアドオンを入れて、ブログ形式のサイトの流し読みが絶大に楽になりました。

とにかくスペースキーを押して画面をスクロールしていくと、次々に「次のページ」を読み込んでくれるので、ほとんどスペースキーしかたたかなくなります。

で、せっかく手がマウスから離れてキーボードのホームポジションにあるのに、ページを遡(PageUpする)ったり数行だけスクロールするのにホームポジションから手を離すのが嫌になりました。

そこで、Firefox を Vim 風に操作できないかググッてはみたものの、Firefox のアドオンの Vimperator はちょっと行き過ぎな感じで断念。(キーボードバインドだけではなく、見た目もその他の操作もまったく変わってしまうんだから・・・。)

結局、AutoHotKey でキーバインドを変更することにしました。

以下のスクリプトで、こんな動作をします。

  • Shift + Alt + vで Vim mode のON/OFFトグル。(Vim mode の時はツールチップに表示)
  • Vim mode の時、j,k,h,lは各々カーソルキー ↓,↑,←,→ にバインド。
  • 同様に、スペース,b,g,Shift+gは各々PageDown,PageUp,Home,End にバインド。
  • Vim mode が解除されているときは通常通りのキーバインド。

エクスプローラなどでも同様の操作をしたかったので、ifWinActive などによるアプリケーション別の判定はしていません。

g(ggではなく)をHomeにバインドしているので、Vim風というよりはLess風と言った方が良いのかもね。

; Vim風カーソル移動等キー
+!v::
    ; Shift Alt V でVim互換モード ON
    if(vim_mode=True){
        ToolTip
        vim_mode:=False
        return
    }
    ToolTip, Vim mode
    vim_mode:=True
    return
j::
    if(vim_mode=True){
        Send,{DOWN}
        return
    }
    SendPlay,j
    return
k::
    if(vim_mode=True){
        Send,{UP}
        return
    }
    SendPlay,k
    return
h::
    if(vim_mode=True){
        Send,{LEFT}
        return
    }
    SendPlay,h
    return
l::
    if(vim_mode=True){
        Send,{RIGHT}
        return
    }
    SendPlay,l
    return
g::
    if(vim_mode=True){
        Send,{HOME}
        return
    }
    SendPlay,g
    return
+g::
    if(vim_mode=True){
        Send,{END}
        return
    }
    SendPlay,+g
    return
b::
    if(vim_mode=True){
        Send,{PgUp}
        return
    }
    SendPlay,b
    return
Space::
    if(vim_mode=True){
        Send,{PgDn}
        return
    }
    SendPlay,{Space}
    return
blog comments powered by Disqus