본문 바로가기

IT이야기/AutoHotkey

AutoHotkey v2 입문 가이드 #4: 핫스트링(Hotstring) - 타이핑의 마법

반응형

🎯 이 글에서 배우는 것: 핫스트링 정의, 자동 텍스트 치환, 다양한 옵션 활용


✨ 핫스트링이란?

핫스트링(Hotstring) = 텍스트 자동 확장

특정 단어나 약어를 입력하면 자동으로 다른 텍스트로 바뀌는 기능입니다.

실생활 예시

입력 자동 변환
btw by the way
omw On my way!
addr 서울시 강남구 테헤란로 123
@@ myemail@example.com

스마트폰의 텍스트 대치 기능을 Windows 전체에서 쓸 수 있다고 생각하면 됩니다!


📝 기본 문법

::약어::변환될텍스트

가장 간단한 예제

::btw::by the way
::omw::On my way!
::afk::Away from keyboard

이제 어디서든 btw를 치고 스페이스바나 엔터를 누르면 by the way로 바뀝니다!


🎯 끝문자 (Ending Character)

기본적으로 핫스트링은 끝문자를 입력해야 작동합니다.

끝문자 목록

-()[]{}:;'"/\,.?!`n`t (스페이스, 엔터, 탭 포함)

예를 들어:

  • btw + 스페이스 → by the way
  • btw + 엔터 → by the way + 줄바꿈
  • btw + .by the way.

⚙️ 핫스트링 옵션

옵션은 첫 번째 콜론 쌍 사이에 넣습니다: :옵션:

즉시 실행 (*) - 가장 많이 씀!

끝문자 없이 즉시 변환:

:*:btw::by the way

btw만 치면 바로 변환! 스페이스 필요 없음.

대소문자 구분 (C)

:C:USA::United States of America

USA만 변환, usaUsa는 변환 안 됨.

대소문자 자동 맞춤 (기본값)

::btw::by the way
  • btwby the way
  • BtwBy the way
  • BTWBY THE WAY

백스페이스 안 함 (B0)

원래 입력한 텍스트를 지우지 않음:

:*B0:hello::안녕하세요

입력: hello → 결과: hello안녕하세요

Raw 모드 (R)

특수 문자를 있는 그대로 출력:

:R:sig::{Enter}Best regards,{Enter}John
; {Enter}가 그대로 출력됨

; Raw 없이:
::sig::Best regards,`nJohn
; 줄바꿈이 적용됨

옵션 조합

:*C:USA::United States of America  ; 즉시 실행 + 대소문자 구분
:*?:...::…                          ; 즉시 실행 + 단어 중간에서도 작동

🔥 자주 쓰는 옵션 정리

옵션 의미 예제
* 즉시 실행 (끝문자 불필요) :*:btw::
? 단어 중간에서도 작동 :?:ing::
C 대소문자 구분 :C:USA::
C1 대소문자 구분하되 첫 글자 자동 맞춤 :C1:btw::
O 끝문자 생략 (결과에 안 붙음) :O:btw::
B0 원본 텍스트 유지 :B0:hi::
R Raw 모드 :R:sig::

📧 실용적인 핫스트링 예제

이메일/연락처 정보

:*:@@::myemail@example.com
:*:@w::work@company.com
:*:mytel::010-1234-5678
:*:myaddr::서울시 강남구 테헤란로 123 A빌딩 5층

인사말/서명

:*:thx::감사합니다.
:*:plz::부탁드립니다.
:*:hello1::안녕하세요, 홍길동입니다.

::sig::{
    Send("Best regards,`n홍길동`nmyemail@example.com")
}

오타 자동 수정

::teh::the
::recieve::receive
::occured::occurred
::definately::definitely
::하빈다::합니다
::슴니다::습니다
::됬::됐

날짜/시간 자동 입력

:*:ddate::{
    Send(FormatTime(, "yyyy-MM-dd"))
}

:*:ttime::{
    Send(FormatTime(, "HH:mm:ss"))
}

:*:now::{
    Send(FormatTime(, "yyyy년 MM월 dd일 HH시 mm분"))
}
  • ddate2024-01-15
  • ttime14:30:25
  • now2024년 01월 15일 14시 30분

🧩 여러 줄 텍스트 (Continuation Section)

긴 텍스트는 괄호를 사용:

::emailtemplate::{
    Send("
    (
안녕하세요,

문의하신 내용에 대해 답변드립니다.

감사합니다.
홍길동 드림
    )")
}

🎭 함수 호출 핫스트링

단순 텍스트 변환이 아니라 복잡한 동작도 가능:

:*:calc::{
    result := 123 * 456
    Send("123 × 456 = " result)
}

:*:uuid::{
    ; 간단한 랜덤 ID 생성
    id := Random(100000, 999999)
    Send("ID-" id)
}

🔧 핫스트링 관련 팁

글로벌 옵션 설정

모든 핫스트링에 기본 옵션 적용:

#Hotstring *  ; 모든 핫스트링 즉시 실행
#Hotstring C  ; 모든 핫스트링 대소문자 구분

::btw::by the way
::omw::on my way
; 위 핫스트링들에 * 와 C 옵션이 자동 적용

특정 프로그램에서만 작동

#HotIf WinActive("ahk_exe notepad.exe")
::test::이것은 메모장에서만 작동합니다
#HotIf

끝문자 변경

#Hotstring EndChars -()[]{}:;'"/\,.?!`n`t@
; @도 끝문자로 추가

⚠️ 주의사항

1. 비밀번호 저장 금지!

; ❌ 절대 하지 마세요!
::mypw::mySecretPassword123

스크립트 파일은 일반 텍스트라서 누구나 볼 수 있습니다.

2. 너무 짧은 약어 주의

; ⚠️ 의도치 않게 자주 발동될 수 있음
:*:a::Apple
:*:i::아이

최소 2~3글자 이상 권장.

3. 특수문자 주의

!, ^, +, # 같은 문자는 Send에서 특별한 의미가 있습니다:

; ❌ 문제 발생
::excited::I'm so excited!

; ✅ 중괄호로 감싸기
::excited::I'm so excited{!}

; ✅ 또는 Raw 모드 사용
:R:excited::I'm so excited!

🎮 실습 과제

다음 핫스트링들을 만들어보세요:

  1. myemail → 본인 이메일 주소
  2. tyvm → Thank you very much!
  3. hbd → Happy Birthday! 🎂🎉
  4. dtoday → 오늘 날짜 (yyyy-MM-dd 형식)
  5. lorem → Lorem ipsum dolor sit amet... (짧은 버전)
정답 보기 👀
#Requires AutoHotkey v2.0

:*:myemail::example@gmail.com
:*:tyvm::Thank you very much!
:*:hbd::Happy Birthday! 🎂🎉

:*:dtoday::{
    Send(FormatTime(, "yyyy-MM-dd"))
}

:*:lorem::Lorem ipsum dolor sit amet, consectetur adipiscing elit.

📚 다음 시간 예고

다음 글에서는 Send, Click, MouseMove를 배웁니다:

  • 키보드 입력 자동화
  • 마우스 클릭/이동 제어
  • 실제 매크로 만들기

드디어 진짜 자동화의 세계로! 🤖


🔑 오늘 배운 핵심 정리

문법 설명 예제
::약어::텍스트 기본 핫스트링 ::btw::by the way
:*:약어::텍스트 즉시 실행 :*:@@::email@test.com
:C:약어::텍스트 대소문자 구분 :C:USA::United States
:*C:약어::텍스트 옵션 조합 즉시 + 대소문자 구분
::약어::{...} 코드 실행 날짜, 계산 등

이전 글: [#3 핫키(Hotkey) 기초]
다음 글: [#5 키보드/마우스 입력 보내기]

반응형