ホットストリングは、ユーザーが特定の文字列をタイプしたときにアクションを発生させられる機能である。
入力された文字列を別の文字列を入力する自動置換型と、ホットキーのようにスクリプトを実行するタイプがある。
NT系専用。
::btw::by the way
上記のように設定すると、「btw」という単語を入力したときに、それがBackSpaceで削除された後、代わりに「by the way」と入力される。
置換後のテキストの指定はSendコマンド同様に特殊キーなども指定できるが、(今のところ)変数を展開することは出来ない。
置換後のテキストに2バイト文字を使うことはできないので、スクリプト実行型でクリップボードを経由して貼り付けるなどの方法を取る必要がある。
この機能は主に英語圏でのテキスト入力の省力化を想定していると思われ、日本語環境では使い道が限られる。
そこで、このページでは、スクリプト実行型に関係のある部分を主に説明する。
::kita-:: Clipboard=キタ━━━━━━(゚∀゚)━━━━━━ !!!!! Send,^v Return
上記のように設定すると、「kita-」とタイプしたときに、「kita-」がBackSpaceで削除された後、AAが貼り付けられる。
タイプしたテキストが削除されないようにするには、後述のオプションで「B0
」を指定する。
「::btw::by the way
」と設定した場合、ただ「btw」と入力するだけではホットストリングは発動しない。
単語のあとに終了文字が入力される必要がある。
デフォルトの終了文字は、「-()[]{}':;"/\,.?!{Enter}{Space}{Tab}」である。
#Hotstring EndChars -()[]{}:;'"/\,.?!`n `t
上記のように記述すると、終了文字を変更することができる。
この指令は他のオプションと異なり、スクリプト中で1回だけ有効で、全てのホットストリングに影響する。
後述するオプションで「*
」を指定すれば、ホットストリングごとに終了文字を必要としないように設定することもできる。
自動置換型の場合、終了文字は置換後のテキストが入力されたあとに入力される。(Enterキー以外)
例えば、「btw/」と入力すると、「by the way/」になる。
これは「O
」オプションで無効化できる。
スクリプト実行型の場合、終了文字の入力は乗っ取られ、無かった事になってしまう。
スクリプト実行型の場合、組み込み変数「A_EndChar」で入力された終了文字を知ることができる。
通常は大文字小文字の違いを無視して発動する。
更に、置換後のテキストがアルファベット列の場合、「btw」→「by the way」、「Btw」→「By the way」、「BTW」→「BY THE WAY」のように置換される。
この動作は、「C1
」オプションで無効化できる。
大文字小文字を区別させたい場合は、「C
」オプションを使用する。
「::abc::
」と「::ABC::
」のような大文字小文字以外が同じホットストリングラベルは存在できない。
「: :abc::
」のように、オプションを指定する部分に半角スペースを入れれば、別のラベル名と認識されるようになり、大文字小文字以外が同じホットストリングを設定できる。
オプションの指定の仕方には2通りある。
複数のオプションを指定するときは、スペースで区切っても区切らなくてもよい。
#Hotstring C
上記のように記述すると、それ以降に定義されるホットストリングの設定を変更できる。
:*:btw::by the way
個別のホットストリングの設定を指定するには、最初の「:
」の間にオプションを記述する。
Sleep 0
」を実行したときと同様、他のプロセスによる割り込みを許す。
ホットストリングの監視は、BackSpaceによる修正を考慮する。
例えば、「br{BackSpace}tw」は「btw」にマッチする。
他の非文字キーは無視され、監視内容はリセットされる。
マウスクリックが行われた場合も、監視内容はリセットされる。
ホットストリングはテキストが入力できない場所でもまったく同様に動作する。
自動入力されるキーによって予期せぬ動作になる場合もあるので注意が必要。
ホットストリングはIMEがONのときにも有効である。
IMEがONのときにテキストが自動入力されると、「btw」→「byてぇわy」のようにひらがなに変換されておかしくなってしまう。
また、「kita-」のような母音を含むホットストリングでは、「きたー」のように未確定文字列の文字数が減ってしまうため、BackSpaceによる自動削除で余分に削除が行われてしまう。
例えば、IMEで「おにぎり」を確定して、次に「きたー」を入力した場合、2文字余計に削除されて「おにキタ━(゚∀゚)━!!」となってしまう。
これを回避するには、「kt-」のように母音を含まないホットストリングに割り当てればよい。
また、IMEの設定によっては、「Kita-」のようにShiftを押しながら英字を入力すると、アルファベットの状態で入力される。
この場合、タイプした文字数とBackSpaceで削除すべき文字数は一致するはずである。
よって、「Kita-」のようにホットストリングを大文字で打ち始めるようにすれば、余計な文字まで削除されてしまうのは回避できる。
間違えて「きたー」と入力しているときに発動してしまうのを避けたければ、「:C:Kita-::」のように「C」オプションを付けて、大文字小文字が一致しないときは発動しないように設定すればいい。
ホットストリングとして使える文字数の上限は30文字。
置換後の文字列は1行の長さの上限である16,383まで可能。
入力が複数のホットストリングにマッチする場合、先に指定した方が優先される。
:?:btw::by the way ::abtw::aaaaa
上の例では、「abtw」と入力したとき「btw」の部分が「by the way」に置換される。