rcmdnk's blog

20170823_autocrrect_200_200

AutoHotkeyのスクリプトを改善しようと思ってドキュメントを見ていたら AutoCorrectスクリプトを見つけたのでそのメモ。

AutoCorrect.ahk

公式ドキュメントのAuto-replaceの所にリンクがあります。

Hotstrings and Auto-replace (similar to AutoText and AutoCorrect)

ページ真ん中辺のAutoCorrectの所に AutoCorrect.ahk のリンクがあります。

中には

::anohter::another

の様な定義がたくさんありますが、 これはanohterと書いたらanotherと置き換える、という機能です。

::で初めて次の::までが入力、::の後が置き換える単語になります。

これは

::btw::by the way

みたいな感じでスニペット的に使う事もできる機能です。

これを使って間違えやすい英単語を詰め込んで間違いを補正できる様にしています。

これらで定義された文字列を打った後に

#Hotstring EndChars -()[]{}:;'"/\,.?!`n `t

で定義された文字を打つと終了文字と判断されて変換を行います。 上のがデフォルト定義で空白やコンマなどアルファベット以外が大体定義に入っています。

ただこの機能ではバイト文字を使うことは出来ないので 日本語の校正には直接使えません。 どうしても使いたい場合はクリップボードから貼り付けるとかちょっと工夫が必要です。

ホットストリング - AutoHotkey Wiki

校正例としては他にも~ingとするところを~ignとなってしまうのを直したりするもの januaryとか月の名前を小文字で書いた時にJanuaryと大文字に直すものなんかもあります。

他には

::attache::attach?

みたいなのもあってこれは大使館員を意味するattache取り付けるという意味のattachに変換してますが、 元の単語もあるので?を付けて確認する様になってます。

これはattacheというのがフランス語から外来語だからだそうです。

English terms with diacritical marks - Wikipedia

ここにあるリストのものを入れてるとのこと。

校正用のソース

校正用に用いられてる単語のソースは以下の様なものです。

Wikipediaにミススペルのリストがあるとは。

自分定義の追加

AutoCorrect.ahkの一番下に

;-------------------------------------------------------------------------------
; Anything below this point was added to the script by the user via the Win+H hotkey.
;-------------------------------------------------------------------------------

という行があって、これより下に自分で定義すればOK。

もしくはスクリプトを起動中に 適当な文字列を選択した状態で Windows-Hを押すと

autocorrect

こんな感じのポップアップが出るので 適当に書き換えて(正しい文字列を選択したなら前に間違えやすい文字を、間違え文字列を選択したなら後ろを正しい文字列に変えて)OKを押します。 そうすると定義がAutoCorrect.ahkの最後に追加されます。

ちなみに上ではHomebrweを入れてますが、 後ろの文字列に大文字を入れてしまうと前の間違え定義を小文字で打った場合 (homebrwe)でもHomebrewと変換されてしまいます。

この場合、::homebrwe::homebrewとしておくとhomebrweと書いた場合はhomebrewに、 Homebrweと書いた場合にはHomebrewと変換されるので 基本定義は小文字でしておいた方が思い通りに行きます。

逆に、固有名詞とか特に大文字が途中に入る様なAutoHotkeyみたいなものの場合、

::autohotkey::AutoHotkey

と定義しておけば、autohotkeyと書こうがAutohotkeyと書こうがAutoHotkeyと変換されます。

どうしてもautohotkeyと小文字で書きたい場合には書いた直後に左カーソル右カーソル、と 一度入れるか変換された後にちょっと書き換えるかすれば。

Windows-Hを押すと で追加する場合には %A_ScriptFullPath%に追加されますが、 これは最初に呼ぶスクリプトなので、AutoCorrect.ahkを別ファイルから読み込んでる場合には 最初に読んだスクリプトに定義が書き込まれます。

実用上それでも問題なく動きますが、 AutoCorrect.ahkの方に書き込みたい場合には直接書くか、 AutoCorrect.ahk#h::の定義中の%A_ScriptFullPath%AutoCorrect.ahkへのパスに書き換える必要があります。

まとめ

AutoCorrect.ahkだと間違えを書き込んだ瞬間に校正するので 校正した事に気づかない位です。 その辺は好みによりますが、使ってみると意外と便利だったりします。 ミススペルは単語を正しく知っていてもタイピングしてるとどうしても起こってしまうものなので。

オートコレクト機能はワードにもあるし 適当なエディタでも付いてるものもあると思いますし、 間違えをすぐに校正しないで印をつけたりするものもありますが、 Windows内どこでも使えるオートコレクトとしてAutoCorrosion.ahkの起用も考えても良いかと。

Sponsored Links
Sponsored Links

« AutoHotkeyでファイルをIncludeしたりリンクだったりした場合のWorkingDir, ScriptDirそしてLineFileについて Karabiner-Elementsが大分進化してVi Modeとかまで出来る様になっていた »

}