AutoHotKey(오토핫키) 설명서 Hotstring

Posted by 발전소장
2014. 8. 14. 01:14 AutoHotKey/Commands

Hotstring

개요

핫 스트링은, 유저가 특정의 문자열을 타이프 쳤을 때에 액션을 발생 당하는 기능이다.
입력된 문자열을 다른 문자열을 입력하는 자동 치환형과 hot key와 같이 스크립트를 실행하는 타입이 있다.

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지령

#Hotstring C

상기와 같이 기술하면, 그 이후에 정의되는 핫 스트링의 설정을 변경할 수 있다.

개별 지정

:*:btw::by the way

개별의 핫 스트링의 설정을 지정하려면 , 최초의 「:」의 사이에 옵션을 기술한다.

옵션 일람

SI
자동 치환으로,Input모드를 사용해 자동 입력을 실시한다.(디폴트)
각 모드의 자세한 것은SendMode커멘드의 설명을 참조.
SP
자동 치환으로,Play모드를 사용해 자동 입력을 실시한다.
SE
자동 치환으로,Event모드를 사용해 자동 입력을 실시한다.
B0
입력된 텍스트를BackSpace그리고 삭제하지 않는다.
덧붙여(1.0.17현재)종료 문자의 문자도 삭제되지 않고, 더욱 자동 입력의 후에 종료 문자가 입력되어 버린다.
B
B0옵션을 해제·무효화한다.
Z
발동한 시점에서, 키 입력의 기억 버퍼를 클리어 한다.
이 옵션을 사용하지 않는 경우, 예를 들어 「B0」 「*」 「?」옵션포함의 「uma」라고 하는 핫 스트링이 발동한 직후는, 기억 버퍼에 「uma」(이)가 들어가 있기 위해, 계속해 「ibou」라고 입력하면, 「umaibou」라고 하는 핫 스트링이 발동해 버린다.
Z0
Z옵션을 해제·무효화한다.
C
대문자 소문자를 구별한다.
C1
대문자 소문자는 무시하면서, 입력 내용의 대문자 소문자의 따로 따라 자동 입력되는 내용의 대문자 소문자를 변화시키는 기능을 무효화한다.
Kn
키의 입력 간격을 지정한다.
BackSpace에 의한 삭제나 자동 치환에서는,1키 마다 여기서 지정한 밀리 세컨드만 사이를 비워 입력된다.
디폴트는 「0」(으)로, 이 경우 「Sleep 0」(을)를 실행했을 때와 같이, 다른 프로세스에 의한 세치기를 허락한다.
「-1」(을)를 지정하면, 세치기를 허락하지 않고 최고의 속도로 입력된다.
O
자동 치환으로, 마지막에 종료 문자를 입력하지 않는다
P
스크립트 실행형에 있어서의세치기 우선도(을)를 지정한다
R
치환 후의 텍스트로 「{Enter}」(와)과 같은 특수 키의 해석을 실시하지 않고, 기술되고 있는 텍스트를 그대로 입력한다.
*
종료 문자 없이 발동하도록(듯이) 한다.
?
단어의 도중에 있어도 발동하게 된다.
통상은, 알파벳 키를 타이프 친 직후에 일치하는 입력이 있어도 무시된다.
C0,O0,R0,*0,?0
각 옵션의 지정을 무효화·해제한다

비고

BackSpace에 의한 다시 놓아

핫 스트링의 감시는,BackSpace에 의한 수정을 고려한다.
예를 들면, 「br{BackSpace}tw」(은)는 「btw」에 매치한다.
다른 비문자 키는 무시되어 감시 내용은 리셋트 된다.

마우스 클릭을 했을 경우도, 감시 내용은 리셋트 된다.

텍스트 입력란 이외로의 동작

핫 스트링은 텍스트를 입력할 수 없는 장소에서도 완전히와 같이 동작한다.
자동 입력되는 키에 의해서 예기치 못한 동작이 되는 경우도 있으므로 주의가 필요.

IME사용시의 동작

핫 스트링은IME하지만ON때에도 유효하다.
IME하지만ON때에 텍스트가 자동 입력되면, 「btw」→「by(이)라고 원y」와 같이 히라가나에 변환되어 이상해져 버린다.

또, 「kita-」(와)과 같은 모음을 포함한 핫 스트링에서는, 「왔다―」(와)과 같이 미확정 문자열의 문자수가 줄어 들어 버리기 위해,BackSpace에 의한 자동 삭제로 여분으로 삭제를 해 버린다.
예를 들면,IME그리고 「주먹밥」을 확정하고, 다음에 「왔다―」(을)를 입력했을 경우,2문자 불필요하게 삭제되어 「도깨비렝━(刪_)━!!」가 되어 버린다.
이것을 회피하려면 , 「kt-」(와)과 같이 모음을 포함하지 않는 핫 스트링에 할당하면 좋다.
또,IME의 설정에 따라서는, 「Kita-」(와)과 같이Shift(을)를 누르면서 영문자를 입력하면, 알파벳 상태로 입력된다.
이 경우, 타이프 친 문자수와BackSpace그리고 삭제해야 할 문자수는 일치할 것이다.
따라서, 「Kita-」(와)과 같이 핫 스트링을 대문자로 치기 시작하도록 하면, 불필요한 문자까지 삭제되어 버리는 것은 회피할 수 있다.
잘못해 「왔다―」라고 입력하고 있을 때 발동해 버리는 것을 피하고 싶으면, 「:C:Kita-::」(와)과 같이 「C」옵션을 붙이고, 대문자 소문자가 일치하지 않을 때는 발동하지 않게 설정하면 된다.

문자수의 상한

핫 스트링으로서 사용할 수 있는 문자수의 상한은40문자.
치환 후의 문자열은1행의 길이의 상한이다16,383까지 가능.

복수 매치시의 우선도

입력이 복수의 핫 스트링에 매치하는 경우, 먼저 지정하는 것이 우선된다.

:?:btw::by the way
::abtw::aaaaa

위의 예에서는, 「abtw」라고 입력했을 때 「btw」의 부분이 「by the way」에 치환된다.