오토핫키 상용구 핫스트링, 유용한 옵션과 오타수정 구현

간혹 축약어 라고도 부르는 이 상용구 기능은, 자주 사용하는 문장이나 수식, 명렁어, 메모, 정보들을 입력해 놨다가, 필요할 때에 간단한 입력으로 불러오는 기능을 말한다. 예를 들어 ‘하이’ 라고 치면 ‘안녕하세요, 만나서 반가워요, 제 이름은 개꿀몬 입니다.’ 라는 문구로 바뀌는 등의 것이다.

이 상용구들은 속기사들이 CAS,소리자바 등의 전문적인 하드웨어인 속기 자판이나 속기 키보드를 사용해 활용하거나, 일반 키보드로 사용하려면 보통 유료 프로그램, 혹은 한글 번역이 되어있지 않은 조금 복잡한 무료 프로그램을 사용하거나 해야 한다.

근데 사실 오토핫키(AutoHotkey)의 핫스트링(hotstring) 기능을 사용하면, 모든 상용구 관련 기능들을 저런 전문적인 기계나 유료 프로그램보다 더욱 고퀄리티로 간단하게 구현할 수 있다.

우선 오토핫키를 처음 접하는 유저분들은 튜토리얼을 진행하고 아래의 내용을 이어나가면 된다. 간단한 오토핫키(AutoHotkey) 설치와 기본 사용방법. 튜토리얼 예제

핫스트링(hotstring) 코드 ‘::’로 상용구와 오타수정 오토핫키 만들기

상용구를 사용하는 핫스트링(Hotstrings)의 기본 코드는 아래와 같다.

::hi::Hello my name is GKKmon

자 이렇게 기본 코드를 설정하면 ‘hi’라고 입력한 뒤 엔터나 스페이스 바를 누르면 ‘Hello my name is GKKmon’이라는 문구로 바뀌게 된다.

사실 이것만으로도 상용구 설명은 끝난 거나 마찬가지인데, 막상 이대로 사용해보면 불편한 점이 상당히 많은 것을 알 수 있다. 우선 반드시 엔터나 스페이스 바 등의 액션을 취해야만 상용구로 변경된다는 것인데, 이 상태로는 잘못 입력하거나 기타 상황에서 더욱 번거로울 뿐더러, 오타수정 등의 기능을 활용하기가 어렵다.

오타수정에도 유용한 즉시 변경 ‘*’속성

때문에 상용구를 입력하자마자 즉시 변경되게 하려면, 처음 ‘::’ 사이에 ‘*’하나만 넣어주면 된다, 이런 식으로 말이다.

:*:hi::Hello my name is GKKmon

이렇게 입력하면, ‘hi’의 ‘i’를 치는 순간 바로 상용구로 변경이 된다.

이 기능을 활용해 아래와 같은 방식으로 상용구를 설정해 놓으면, 자동으로 오타를 수정할 수 있다. 참고로 상용구는 영어만 인식하기 때문에 앞부분은 반드시 영어로 입력해야 한다.

; 'ㅇ낳'을 '않'으로 오타수정 해주는 상용구
:*:dskg::않

; AutoText to edit the 'appel' to 'apple'
:*:appel::apple

이렇게 저장해 놓으면 ‘ㅇ낳’이라고 오타가 났을 때 바로 ‘않’으로 수정이 되고, ‘appel’이라고 오타가 났을 때 ‘apple’로 바로 수정이 된다.

앞뒤 문맥에 구애받지 않는 ‘?’속성

하지만 이것도 아직 실전에서 쓰기엔 불편한 코드다. 왜냐면 앞에 아무 문자가 없이 독립으로 써졌을 때에만 상용구가 작동하기 때문이다.

예를 들어 위의 경우 ‘그렇지 ㅇ낳고’라고 오타가 났을 경우에는 이전에 아무 문자가 없기 때문에 바로 수정이 되지만, ‘그렇지ㅇ낳고’ 처럼 이어서 쳤을 때에는 수정이 되지 않는다. 때문에 앞뒤로 다른 단어가 있던 말던 무조건 상용구로 변경되게 하려면 ‘?’를 추가해야 한다.

:*?:dskg::않

:*?:appel::apple

이렇게만 알고 있어도, 왠만한 상용구는 이제 무리 없이 자유롭게 사용할 수 있다. 다만 한글을 사용하기 때문에 불편한 점이 몇 가지 있는데, 이를 위한 기능도 존재한다.

한글 상용구 오류를 방지하기 위한 백스페이스 조절 ‘B0’속성

첫 번째는 이 상용구 기능이 ‘hi’라고 입력하면 두 글자를 인식해 백스페이스를 두 번 누르고 상용구를 입력하는 방식이기 때문에, 영어로는 전혀 문제가 없지만 한글로 사용하면 더 삭제해 버리는 문제가 발생한다.

예를 들어 ‘그렇게도’를 적고 지워보면 총 5번의 백스페이스 바를 눌러야 하는데, 이를 영어로 적은 ‘rmfjgrpeh’를 지우려면 총 9번의 백 스페이스 바가 필요하다. 때문에

:*?:rmfjgrpeh::그렇게도

라고 설정해 놓으면 기본 설정인 영어 개수로 인식해 총 9번의 백스페이스를 누른 뒤 상용구를 입력하고, ‘그렇게도’는 5번 만에 지워지기 때문에 뒤로 4번 더 지우는 현상이 일어나게 된다.

때문에 이런 경우에는 백스페이스 바의 수를 조절해줘야 한다, 총 5번의 백스페이스 바가 필요하니까 아래와 같이 코드를 수정해주면 된다.

:*?B0:rmfjgrpeh::{bs 5}그렇게도

파란색으로 칠 한 ‘B0’는 앞서 말 한 백스페이스 바로 이전에 적었던 글을 지우지 않게 설정하는 명령이고, 빨간색으로 칠 한 ‘{bs 5}’는 백스페이스바를 5번 누르라는 명령이다. 이렇게 코드를 적어 넣어서 한글 상용구를 사용할 때에도 뒤로 더 지우는 현상을 없애주고 정확하게 입력할 수 있도록 할 수 있다. 한글 뿐만 아니라 영어가 아닌 상용구를 사용하려면 반드시 사용해야 하는 기능이고 굉장히 유용한 기능이다.

대소문자를 구분하고 쌍자음 등에 활용할 수 있는 ‘C’속성

마지막으로 대소문자를 구별하기 위한 ‘C’ 속성이 있다. 이 속성을 추가하면 대소문자까지 구별해 정확히 같을 때에만 코드로 인식하기 때문에, 영어로는 대소문자, 한글로는 쌍자음 같은 경우도 자유롭게 구현할 수 있다. 예시 코드는 아래와 같다.

; 빵을 핫키로 하기 위해선 Qkd 이라고 대소문자를 구분해 핫키를 만들면 된다.
:C:Qkd::내가 좋아하는 빵은 슈크림빵

:C:Ap::Apple

위의 코드처럼 ‘C’속성을 사용하면 정확히 ‘빵’이라고 입력해야만 상용구가 발동하고, 당연하게도 ‘방’에는 반응하지 않게 된다.

여기까지가 개인적으로 생각하는 오토핫키 상용구 기능 핫스트링(Hotstring)의 필수 속성들이다. 여기 나와 있는 기능만 사용해도 시중에 나와 있는 어중간한 상용구 프로그램보다 더욱 간단하고 퀄리티있게 상용구와 오타수정 기능을 모두 자유롭게 사용할 수 있다.

이 외에도 더 많은 속성들이 있지만, 종류가 굉장히 방대하고 위에 명시된 속성들 말고는 활용도가 높지 않기 때문에 다음 기회에 설명하도록 하겠다. 궁금하다면 공식 오토핫키(Autohotkey) Hotstrings 도움말에서 확인할 수 있다.