LoginSignup
18
16

More than 3 years have passed since last update.

はじめに

この記事は「Develop fun!」を体現する Works Human Intelligence #2 Advent Calendar 2020 4 日目の記事となります。

「Develop fun!」ということで、Windows で楽しく開発する上で必須とも言えるツール、AutoHotKeyを紹介します。

この記事で触れること・触れないこと

AutoHotKey とは

AutoHotkeyはオープンソースで誰でも制限無く利用出来る※1 Windowsプラットフォームで動く強力なスクリプトエンジンで、
キーボードやマウスをカスタマイズしたり、ウィンドウ操作を自動化したりできます。

※1 : ライセンス形態は GNU General Public License

引用元: AutoHotkeyJp

要するに、スクリプトさえ書けば、キーボードやマウスで行う作業をほとんど自動化できます。

実現できること

上でも紹介しましたが、こちらの日本語ドキュメントが詳しいです。
※英語版(公式)はこちら
以下、筆者がよく使うもの書き出してます。

リマップ

リマップ機能を利用すれば、特定のキー操作に別のキーを割り当てることが出来ます。
以下のようにスクリプトを書くだけで、Vim Like な矢印キー操作が可能になります。
#は Windows キーを示す修飾シンボル
;はコメントアウト

#h::left    ;Win+H に ←キー を割り当て
#j::down    ;Win+J に ↓キー を割り当て
#k::up      ;Win+K に ↑キー を割り当て
#l::right   ;Win+L に →キー を割り当て

プログラムの起動

好きなキーで好きなプログラムを起動することが出来ます。
起動時引数を渡すことも出来ます。

^は Control キー
!は Alt キー
<>は修飾シンボルの前につけることで、左右を限定する

<^<!b::Run, C:\WINDOWS\system32\bash.exe           ;左Ctrl+左Alt+B で bashを起動
<^<!r::Run, c:\Program Files\clibor\Clibor.exe /ff ;;左Ctrl+左Alt+R で CliborをFIFOモードで起動

スクリプトの実行

プログラムの起動だけでなく、スクリプトの実行もできます。
変数、関数、制御文といった基本的なことはできる認識です。
ここに詳細が記述してあります。
ただ、AHK のスクリプトでゴリゴリ処理を書くよりは、トリガーを AHK にし、処理は別言語に移譲したほうがメンテナンスが簡単かな、と感じます。
AHK を業務で書くことはないので、文法をすぐ忘れてしまうのです。そのため、メンテナンスが大変に...

<!+v:: ;コピーした文字列の先頭に`> `をつけて返す
    StrRefMsg := RegExReplace(Clipboard, "([^\n]+)", "> $1")
    Clipboard = %StrRefMsg%
    Send, ^v
    return

LShift up::
RShift up::
    ; 左 shift 空打ちで IME を OFF (一部スクリプト省略)
    if (A_PriorHotkey = "*~LShift")
    {
        IME_SET(0)
    }
    ; 右shift 空打ちで IME を ON
    if (A_PriorHotkey = "*~RShift")
    {
        IME_SET(1)
    }
    Return

;alt *2 で右クリック(ctrl + F10)
alt::
  KeyWait, alt
  if (A_PriorHotkey == A_ThisHotkey) && (300 > A_TimeSincePriorHotkey)
    send, +{F10}
  return

ホットストリング

ホットストリングは、ユーザーが特定の文字列をタイプしたときにアクションを発生させられる機能です。
IME の辞書と同じような要領で使用できます。
個人的には、変換を挟まずに使える、\t\n を受け付ける(入力中にフォーカス移動、改行、ボタンの押下が可能)といった理由で、此方のほうが好みです。
こちらの記事も参考になります。

::mail::mail@gmail.com
::dept::XXXX Div.YYYY Dept.ZZZZ Grp.
::myuser::satoh{Tab}yut{Tab}phone1{Tab}address1{Enter} ;新規ユーザ作成

その他

他にも、

等々、本当にいろんな事ができます。
(IME の切り替えはレジストリを変更せずに、自由に変換キーを設定できるので特におすすめ)

上記のスクリプトはそのまま exe ファイルととして実行もできますし、自身のスクリプトに関数として取り込むこともできます。

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16