AutoHotKeyのすゝめ
はじめに
どうも、部会の曜日をどうしても覚えられないWhiteShirtです。
日々プログラミングしているものにとって、タイピング速度は命です。
まぁ当然ですね。タイピングが速い分プログラムも速くかけます。
速くタイピングするには、指をホームポジションからなるべくずらしたくないです。しかし、JISキーボードはEnterキーが隅に寄っていて押しにくいですよね……。他にもBackSpace、Delete、Esc、PgUp、Arrow Key 等々。よりによってプログラミングでよく使うキーがあまりにも押しにく過ぎる!!
その割には、変換、無変換キーがいいところに陣取ってて嫌な感じです。
AutoHotkeyの基本
そこで登場するのがAutoHotkeyです。これを使うと、任意のキーに様々な設定(ホットキー)をすることができます。Windows限定なのが残念ですが、Macでも探せば同じようなものはあると思います。
拡張子を.ahkにして実行することで設定を適応できます。
今回は一番簡単なものを紹介します。
[任意のキーA]::send, [任意のキーB]
とすると、Aを押すとBのキーとして動作します。
例えば、
vk1D & i::Send, {Blind}{Up}
vk1D & j::Send, {Blind}{Left}
vk1D & k::Send, {Blind}{Down}
vk1D & l::Send, {Blind}{Right}
と書くと無変換キーとiキーで上キー、jで左キー、kで下キー、lで右キーとなります。vk1Dは無変換キーのキーコードです(詳しくはこちら)。また、{Blind}
を付けると、同時押しに対応します。Vim使ってる人は、h j k l に設定してもいいかもしれませんね。
サンプルコード
私が使っている設定置いておきますね。自由に使って貰って構いませんが、何かあったら自己責任でお願いします。
;----------Setting----------
#NoEnv
#Warn
SendMode Input
;---------- vk1D key ----------
vk1D & q::Send, {vk1D}
vk1D & w::Send, {vk1C}
vk1D & Space::Send, {Blind}{Enter}
vk1D & g::Send, {Blind}{BS}
vk1D & h::Send, {Blind}{Delete}
vk1D & i::Send, {Blind}{Up}
vk1D & j::Send, {Blind}{Left}
vk1D & k::Send, {Blind}{Down}
vk1D & l::Send, {Blind}{Right}
vk1D & 1::Send, {Blind}{F1}
vk1D & 2::Send, {Blind}{F2}
vk1D & 3::Send, {Blind}{F3}
vk1D & 4::Send, {Blind}{F4}
vk1D & 5::Send, {Blind}{F5}
vk1D & 6::Send, {Blind}{F6}
vk1D & 7::Send, {Blind}{F7}
vk1D & 8::Send, {Blind}{F8}
vk1D & 9::Send, {Blind}{F9}
vk1D & 0::Send, {Blind}{F10}
vk1D & -::Send, {Blind}{F11}
vk1D & ^::Send, {Blind}{F12}
vk1D & a::Send, {Blind}{Home}
vk1D & e::Send, {Blind}{End}
vk1D & u::Send, {Blind}{PgUp}
vk1D & d::Send, {Blind}{PgDn}
vk1D & v::Send, {Blind}{LButton}
vk1D & n::Send, #{Left}
vk1D & .::Send, #{Right}
vk1D & ,::Send, #{Up}
vk1D & m::Send, #{Down}
;---------- vk1C key ----------
vk1C & a::Send, {Blind}+{1}
vk1C & s::Send, {Blind}+{2}
vk1C & d::Send, {Blind}+{3}
vk1C & f::Send, {Blind}+{4}
vk1C & g::Send, {Blind}+{5}
vk1C & h::Send, {Blind}+{6}
vk1C & j::Send, {Blind}+{7}
vk1C & k::Send, {Blind}+{8}
vk1C & l::Send, {Blind}+{9}
vk1C & q::Send, {Blind}+{-}
vk1C & w::Send, {Blind}{-}
vk1C & e::Send, {Blind}+{^}
vk1C & r::Send, {Blind}{^}
vk1C & t::Send, {Blind}+{\}
vk1C & y::Send, {Blind}{\}
vk1C & u::Send, {Blind}+{/}
vk1C & i::Send, {Blind}{/}
vk1C & o::Send, {Blind}{_}
vk1C & p::Send, {Blind}{\}
vk1C & Space::Send, {LWin}
vk1C & n::Send,{RButton}
;---------- Ctrl ----------
^[::Send, {Esc}
Ctrl & Tab::AltTab
;minimize window
^q::PostMessage, 274, 61472, 0, , A
+^]::Send,^{Tab}
+^[::Send,+^{Tab}
Ctrl & 9::Send, #{x}
;---------- Win ----------
#e::Run "C:\Users\[user_name]"
変換、無変換キーをふんだんに使っています。
最後に
AutoHotkeyはホットキーを設定する以外にも、作業を自動化したり、簡単なGUIアプリを作ったりと、色々なことができます。興味を持ったら、調べてみると面白いかもしれません。
コメント入力