rcmdnk's blog

20130723_AutoHotKey_200_200

前にVim以外でVimする: Windows編 でWindowsでyamyを使って Vimっぽい動きを再現する物を作ってみましたが、 AutoHotkey に移行することにしたので、 AutoHotkeyでも同様の物をつくってみました。

vim_ahk

インストール方法

AutoHotkey用vim設定ファイルはGithubのレポジトリに置きました:

ここにあるvim.ahk をAutoHotkeyを使って開くか、 もし、すでにAutoHotkeyを使っている場合、 このファイルを使っている設定ファイルのディレクトリに置いて、 設定ファイルのAuto-execute section (ReturnやHotkeyの設定などが始まる前)に

#Include  %A_ScriptDir%\vim.ahk

を書いてファイルをインクルードします。(内容をコピペしても良いですが、最初のAuto-execute sectionの部分は分けてファイルの先頭に書いてください。)

また、AutoHotkeyは実行ファイル化の機能があって、AutoHotkey本体をインストールしなくても動かせます。 もし、AutoHotkeyをインストールしないまま試してみたい場合は、

上のレポジトリにある

Releasesページからzipをダウンロードして解凍して取り出し 実行してみてください。 これだとAutoHotkeyをインストールしてなくても単独で使えます。

設定

初期設定では以下のソフト上で有効になっています。

  • Notepad (メモ帳)
  • Wordpad
  • TeraPad
  • Exploler
  • Thunderbird (only sending window)
  • Power Point
  • Word
  • Evernote

vim.ahkの先頭にこれらの設定(GroupAdd)が書いてあります。 Thuderbirdに関しては、class名にするとFirefoxと被ってしまうので、 Windowのタイトルを取って送信Windowのみで有効に成るようになっています。 他のソフトでWindowタイトルが作成:等となるものがあると、そのソフトでも 有効になります。

Windowの調べ方や設定方法はこちらを参考にしてみてください。

もう一つvim_verboseの値が初期では2になっていますが、 これはモードが変わったりした時に表示される情報の詳細さを指定して

  • 0: 何も表示しない
  • 1: モード名のみ(Vim_Normal, Vim_Visualなど)をTask Tray Tipsとして表示
  • 2: リピート回数等の情報もTask Tray Tipsとして表示
  • 3: メッセージボックスも表示

注意として、各動き(jで下に下る)などすべてのNormal Modeでの動きの後に 設定の変更があるので、殆の場合にメッセージが表示されます。 従って3は完全デバッグ用です。 Tipsが邪魔な場合は0にして下さい。

使い方

Vimの基本的な動きを再現してあります。 基本的にyamyでやった事と 同じ事が出来ます。

詳細はレポジトリのREADME(vim_ahk) を参照してください。

AutoHotkeyの方が優れている点としては、リピート回数(38jで38行下がるなど)とかが変数で 定義できるので、yamyの場合は100回が限度にしていましたが、、 今回の場合は上限はありません。(100回以上のリピートは滅多に必要とされないと思いますが…)

気になる点としては、たまにホットキー先でCtrlなどを使う場合、 そのキーを押し続けてキーリピートを実行させようとすると たまにCtrl+押したキーの様な信号が送られてしまう点。

例えばNormal Modeでpは貼り付けですが、貼り付けるためにCtrl-vにマップしてあります。 複数貼り付けたい時、pを押し続けると途中でプリンタが呼び出される(Ctrl-p)事がありました。 これを回避するために、この貼り付けについてはリピートが効かないように なっています。(pを押し続けても1回しか貼り付けられない。)

他の動きのキーはキーリピートを制限してませんが、おかしな動きをした場合は教えていただけるとありがたいです。

カーソルやマウス、Windowなどを複数修飾キーと共にhjklなどで操作する

yamyMacでKeyRemap4macBook でやった様にカーソルやマウス、Windowsなどをvimっぽい操作で動かす 設定は現在使っている Mainファイル の中に書いてあります。 この中のCursor, Mouse, Window move/sizeの項目をコピペするなり参照するなり してください。

今後の改善点

上のキーリピートの問題は1つなんとかしたいところです。 キーを離すのを待つ関数などがあるのですが、色々試しても今のところ上手く出来てません。 このvim設定の場合はそれ程問題が無いのですが、 Ctrl+Alt-jなどで直接上下左右に移動するとき、 その時にたまにjなどが記入されてしまって困ってるので、 なんとかしたいところです。

もう一つはMacの方でKeyRemap4MacBook+MadRubyで マクロっぽい動きを再現 してみましたが、これと同じことをしたいと思ってます。 Windowsにも似たようなソフトはいくつかあるのでそういうのも使っても良いのですが、 AutoHotkey自体が変数を使えたりするので、 なんとか単独出来ないかな、とおもってます。

Sponsored Links
Sponsored Links

« AutoHotkeyの使い方2 Vimを使う上でのIME(日本語入力)の取り扱い with AutoHotKey »

}