AutoHotkeyのカスタマイズ例として、自分が行っている方法を紹介します。
インストール方法や初期設定方法は以下の記事に記載
AutoHotkeyのイントール方法と初期設定
カスタマイズ内容
まずは結果から。以下のようなカスタマイズにしています。
; 無変換の単発押しは無変換 vk1D::vk1D ;「無変換 + Space」で「Enter」 vk1D & Space::Enter ;「無変換 + J 」で「←」 ;「無変換 + I 」で「↑」 ;「無変換 + K 」で「↓」 ;「無変換 + L 」で「→」 vk1D & I::Up vk1D & J::Left vk1D & K::Down vk1D & L::Right ;「無変換 + H 」で「Back Space」 ;「無変換 + ; 」で「Delete」 vk1D & H::BS vk1D & vkBB::Delete ;「無変換 + A 」で「Home」 ;「無変換 + E 」で「End」 vk1D & A::Home vk1D & E::End
行頭にある;
はコメントアウトを表しています。
vk1D
は無変換キー、vkBB
はセミコロンを表しており、他にも特殊キーの書き方は様々なものがあります。
参考(無変換との組合せで①~⑧を実現)
①「Enter」
②~⑤「←」「↑」「↓」「→」
⑥「Back Space」、 ⑦「Delete」、 ⑧「Home」、 ⑨「End」
解説
あるキーを別のキーとして割り当てる。
A というキーを C に割り当てたいなら、シンプルに
A::C
と記載します。
以下のようにSend
をつけた書き方もできますが、意味が変わってきます。
A::Send,C
A::Send,C と書いた場合、A 単発 で押した場合のみ C として機能するようになります。
例えば、Crtl + A
というショートカットキーをご存知でしょうか。
メモ帳など開いてこのショートカットキーを使うと、入力済みの文字が全選択できます。
ここでAutoHotkeyのスクリプトにA::Send,C
と書いていた場合、A
はC
として機能しているはずなのです。
(Aを押下すると「C」が入力される)
しかしCrtl + A
のショートカットキーは引き続き利用できます。
単発押しではないため、AがそのままAとして機能しているということです。
複数のキーを組み合わせて別のキーとして割り当てる。
A と B を組み合わせて、C の機能を割り当てる場合は、
A & B::C
と記載します。
これは A を 押しながら B と押す、という意味です。 A と B の同時押しとは少し違います。
そして注意点として、A & B::C と書いた場合、A 単発で A を入力することができなくなります。
この事象を解決するには、以下のような記述が必要です。
; A の単発押しは A A::A
冒頭で挙げた自分がカスタマイズしたスクリプトですが、
すべて無変換vk1D
との組み合わせに対して、なんらかのコマンドを割り当てていることがわかると思います。
なのでvk1D::vk1D
と書いておかないと、無変換を単発で利用できなくなってしまいます。
無変換なんか使わないよ、という方は特に問題はないでしょう。
※自分の場合google日本語入力を利用して、変換/無変換 キーに 半角/全角 を割り当てているので、無変換単発で利用できないと不都合があるのです。
send について補足
Send
を記載すると、 A を 押しながら B を押した場合のみ、C として機能します。
A & B::Send,C
例えば、左矢印を実現するために以下のような記載したとします。
vk1D & J::Send,Left
この場合、無変換と J を押した時点で Left
を押したことになります。
範囲選択をするためにShift
を押下しても、Shift
は受付けられません。
上の方で「A::Send,C と書けば、A 単発 で押した場合のみ C として機能するようになります。」との記載をしました。
なんとなくキーの用途を限定するような役割がある、ということをとりあえず覚えておけばよいかと思います。
なお、Send を記載した場合でも他のキーとの組み合わせを可能にしたいのであれば、以下のようにBlind
をあわせて記載します。
vk1D & J::Send,{Blind}{Left}
おわりに
当初以前自分は、例えばLeft
を実現するために、vk1D & J::Send,{Blind}{Left}
のような書き方をしていました。
様々なWebサイト等ではこのような書き方になっており、その内容を参考にしていたからです。
しかし色々検証してみた結果、そもそも Send って使う必要ないのでは?と思いスクリプトの書き直しをしました。
(わかりにくいと思いますが、わざわざBlind
を追加するのであれば、最初からSend
はなくていいはずです。認識違っていたら教えて欲しいです)
どんな場合にSend
が必要かというのを正しく理解できたら、またこの記事を更新しようかと思いますが、
とりあえずは問題なくキー割り当てはできており、想定した通りの挙動になっているので、しばらくこのままで使うと思います。
AutoHotkey のカスタマイズ内容の紹介や解説は以上となります。
その他別のソフトを利用したキーカスタマイズ
AutoHotkey以外のソフトでもキーボード入力に関わる設定を行っています。
こちらも便利なのでやっておいて損は無いと思います。
- 「半角 / 全角」の切替方法の変更 → 「google日本語入力」で実現。
#%&$^_|¥
を常に半角入力する → 「google日本語入力」で実現。
google日本語入力については別の記事に記載済みです。よろしければご参考下さい。