AutoHotkey の Hotstring で曜日文字列を素早く入力する
w[[ と打つと(今日が金曜日なら)Fri が入力される……そんなことがしたかった。
コード
; Hotstring のオプション. 自分好み.
; - 終了文字無しで発動させる
; 0 自動置換後、最後に終了文字を入力しない
#Hotstring *
#Hotstring O
; 曜日文字列を作るところ.
; 最初は配列を使おうとしたが AutoHotkey の配列型は扱いがよくわからず断念.
; 文字列操作で頑張ることにした.
get_dowstr()
{
FormatTime, downum,, WDay
dowtable := "SunMonTueWedThuFriSat"
; Wday は日曜日が 1、
; StringMid も 1-origin、
; ということでちゃんと整理しないと位置計算に戸惑う.
startpos := ((downum-1)*3)+1
dowstr := ""
StringMid, dowstr, dowtable, %startpos%, 3
return dowstr
}
; w[[ → 曜日文字列を実現する Hotstring 本体部分
::w[[::
dowstr := get_dowstr()
Clipboard = %dowstr%
Send,^v
;SendInput %now%
return
おわりに
AutoHotkey の Hotstring で現在日時を指定フォーマットで挿入する - stamemo と組み合わせれば、日付時刻文字列の入力は自由自在。
私はメモ時にメモ時刻も併記するタイプなのだが、いちいち日付時刻文字列を手打ちするのはだるかった。ようやく思い通りの、素早い併記を実現できそうだ。