まるノート

雑記ブログです。

【AutoHotkey】自分のカスタマイズ内容とその解説

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はセミコロンを表しており、他にも特殊キーの書き方は様々なものがあります。


解説

あるキーを別のキーとして割り当てる。

A というキーを C に割り当てたいなら、シンプルに

A::C

と記載します。

以下のようにSendをつけた書き方もできますが、意味が変わってきます。

A::Send,C 


上記2つの違いは全選択のショートカットキーCrtl + Aを入力するとすぐにわかります。

A::Cと記載している場合、Crtl + Aのショートカットキーは機能しません。 A::Send,Cの場合、Crtl + Aのショートカットキーは機能します。

A::Send,C と書けば、A 単発 で押した場合のみ C として機能するようになるからです。


複数のキーを組み合わせて別のキーとして割り当てる。

A と B を組み合わせて、C の機能を割り当てる場合は、

A & B::C

と記載します。

これは A を 押しながら B と押す、という意味です。 A と B の同時押しとは少し違います。

そして注意点として、A & B::C と書いた場合、A 単発で A を入力することができなくなります。

この事象を解決するには、以下のような記述が必要です。

; A の単発押しは A
A::A


冒頭で挙げた自分がカスタマイズしたスクリプトですが、
すべて無変換vk1Dとの組み合わせに対して、なんらかのコマンドを割り当てていることがわかると思います。
自分が冒頭で紹介したスクリプトにvk1D::vk1Dと書いているのはそのためです。

これを書かないと、無変換を単発で利用できなくなります。 無変換なんか使わないよ、という方は問題ないですが、自分の場合google日本語入力を利用して、
変換 / 無変換 キーに 半角 / 全角 を割り当てているので、無変換単発で利用できるようにしています。


次にSendを記載すると、 A を 押しながら B を押した時のみ、C として機能します。

A & B::Send,C


例えば、左矢印を実現するために以下のような記載したとします。

vk1D & J::Send,Left


この場合、範囲選択をするためにShiftを押下しても、無変換と J を押した時点で Left を押したことになり、 Shiftは受付られず、範囲選択はできないことになります。


Send を記載した場合でも他のキーとの組み合わせを可能にしたいのであれば、以下のようにBlindをあわせて記載します。

vk1D & J::Send,{Blind}{Left}


おわりに

以前自分は例えばLeftを実現するために、vk1D & J::Send,{Blind}{Left}のような書き方をしていました。
様々なWebサイト等ではこのような書き方になっており、その内容を参考にしていたからです。

しかし色々検証してみた結果、そもそも Send って使う必要ないのでは?と思いスクリプトの書き直しをしました。
(わかりにくいと思いますが、わざわざBlindを追加するのであれば、最初からSendはなくていいはずです)

どんな場合にSendが必要かというのを正しく理解できたら、またこの記事を更新しようかと思いますが、 とりあえずは問題なくキー割り当てはできており、想定した通りの挙動になっているので、しばらくこのままで使うと思います。

AutoHotkey のカスタマイズ内容の紹介や解説は以上となります。


その他別のソフトを利用したキーカスタマイズ

AutoHotkey以外のソフトでもキーボード入力に関わる設定を行っています。
こちらも便利なのでやっておいて損は無いと思います。

  • 「半角 / 全角」の切替方法の変更 → 「google日本語入力」で実現。
  • #%&$^_|¥を常に半角入力する → 「google日本語入力」で実現。

google日本語入力については別の記事に記載済みです。よろしければご参考下さい。