「AutoHotkey text replacement」で検索すると、10 年前までさかのぼるフォーラムのスレッドが出てきます。そこにはこんなホットストリングの断片が並んでいます: ::btw::by the way。確かに動きます。そして 1 年か 2 年後、多くの人が静かに別の道具を探し始める理由でもあります。たいていは、それまで問題なく動いていたスクリプトがアップデートで壊れた直後です。

ホットストリングが最初は最高に思える理由

AutoHotkey のテキスト置換機能であるホットストリングは、実によくできています。短い 1 行でトリガーと置換後の文字列を定義でき、スクリプトを起動した瞬間からシステム全体で動きます。テキストエディターに慣れている人なら、最初の 10 個のショートカットを作るハードルはほぼゼロです。だからこそ、多くの人がここから始めます。

時間を節約するどころか奪い始めるところ

問題が出るのは初日ではなく、後になってからです。メモ帳では正しく展開されるスクリプトが、Electron 製アプリや、AHK より先にキー入力を横取りするブラウザーの入力欄では違う挙動をすることがあります。Windows の更新でウィンドウタイトルや UI 要素の見え方が変わることもあり、そうした細部に依存したスクリプトは何も言わずに一致しなくなります。変更履歴もエラーダイアログもありません。ある日ショートカットが反応しなくなり、トリガーを打って何も返ってこなくて初めて気づくのです。

もうひとつのコストが保守です。ショートカットを追加するたびに .ahk ファイルを開き、正しい構文でもう 1 行書き、保存し、スクリプトを再読み込みします。難しくはありませんが、追加のたびに小さな税がかかります。しかも、テキストエクスパンダーが本来なくすべき摩擦がそこに生まれます。同僚に共有するとなれば、生のコードを渡し、相手の環境が自分と十分に近いことを祈るしかありません。

AutoHotkey は Windows 専用でもあり、スクリプトをバックグラウンドで動かし続けるのは自分の責任です。パスワード欄を保護する仕組みも内蔵されていません — 明示的に対策を書かない限り、ホットストリングはログインフォームの中でも平気で展開されます。

専用のエクスパンダーが置き換えるもの

専用に作られたテキストエクスパンダーは、同じ発想 — 短いトリガー、完全な文章、どこでも入力できる — を、書くスクリプトではなく埋めるフォームに変えます。ふつうのウィンドウからショートカットを追加するだけです。トリガーを入力し、置換後の文章を入力し、保存する。正しく書くべき構文も、再読み込みの手順も、手作業でバックアップするファイルもありません。

Text Replacements は Windows 11 でこの方式を採っています。アプリ固有のコードではなく低レベルのキーボードフックとして動くので、ブラウザーでもチャットアプリでもターミナルでも同じように振る舞います。すでに AutoHotkey を使っている人は、ホットストリングを 1 つずつ打ち直さなくても JSON や CSV のリストを取り込むだけで移行できます。パスワード欄は自動的に除外されるため、ログイン画面で誤って展開させないための追加の記述も不要です。

それでも AutoHotkey が正解の場合

以上は AutoHotkey が悪い道具だという話ではありません。条件分岐、ウィンドウごとの挙動、文字入力を超えた本格的な自動化が必要なら、AHK のスクリプトの仕組みは今でも強力ですし、まさにそのために使い続けている人はたくさんいます。違いは「古い道具か新しい道具か」よりも狭いところにあります。AutoHotkey はたまたまテキスト置換もできるスクリプト言語で、テキストエクスパンダーはそれだけのために作られた道具です。その差は、10 個目のショートカットを追加する手間が 1 個目とどれだけ変わらないかに表れます。

ゼロからやり直さずに移行する

  • 既存のホットストリングを書き出すか、表計算ソフトにコピーします。1 列目にトリガー、次の列に置換後の文章を入れます。
  • CSV として保存し、そのまま取り込みます — 打ち直しは不要です。
  • 文字入力以外にも AutoHotkey を使っているなら、そのまま残しておき、入力のショートカットだけを専用ツールに任せましょう。

成功の基準は、どちらの道具が技術的に見えるかではありません。今月 10 個目のショートカットを、10 秒で追加できたか、10 分デバッグして直したかです。