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
で定義された文字を打つと終了文字と判断されて変換を行います。 上のがデフォルト定義で空白やコンマなどアルファベット以外が大体定義に入っています。
ただこの機能ではバイト文字を使うことは出来ないので 日本語の校正には直接使えません。 どうしても使いたい場合はクリップボードから貼り付けるとかちょっと工夫が必要です。
校正例としては他にも~ing
とするところを~ign
となってしまうのを直したりするもの
january
とか月の名前を小文字で書いた時にJanuary
と大文字に直すものなんかもあります。
他には
::attache::attach?
みたいなのもあってこれは大使館員を意味するattache
を
取り付けるという意味のattach
に変換してますが、
元の単語もあるので?
を付けて確認する様になってます。
これはattache
というのがフランス語から外来語だからだそうです。
ここにあるリストのものを入れてるとのこと。
校正用のソース
校正用に用いられてる単語のソースは以下の様なものです。
- Wikipedia:Lists of common misspellings - Wikipedia
- Wikipedia:Typo Team - Wikipedia
- Microsoft Office autocorrect list
- Script by jaco0646 AutoReplace - Scripts and Functions - AutoHotkey Community
- OpenOffice autocorrect list
- TextTrust press release
- User suggestions.
Wikipediaにミススペルのリストがあるとは。
自分定義の追加
AutoCorrect.ahkの一番下に
;-------------------------------------------------------------------------------
; Anything below this point was added to the script by the user via the Win+H hotkey.
;-------------------------------------------------------------------------------
という行があって、これより下に自分で定義すればOK。
もしくはスクリプトを起動中に 適当な文字列を選択した状態で Windows-Hを押すと
こんな感じのポップアップが出るので 適当に書き換えて(正しい文字列を選択したなら前に間違えやすい文字を、間違え文字列を選択したなら後ろを正しい文字列に変えて)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の起用も考えても良いかと。