esc 키를 누를 시 자동 영문 전환 (Windows)
목차
들어가기에 앞서…
해당 방법은 auto hotkey를 사용하는 방법이기에 윈도우에서만 동작합니다.
Windows가 아닌 다른 OS에서 사용하고 싶으시다면 뒤로가기를 눌러 주십시오.
준비
auto hotkey
오토핫키 설치가 필요합니다.
오토핫키는 여기서 다운받을 수 있습니다
스크립트 작성
아래 스크립트 작성
필자는 vim을 사용할 때 ctrl + space
키를 esc 키로 매핑하여 사용하고 있기에
ctrl + space
키 또한 누를 경우 한/영 상태를 체크하는 코드를 추가하였다.
만약 ctrl + [
를 주로 사용하는 사용자라면 ^Space
대신 ^[
를 추가한다.
동작 방식은 A를 눌러 눌러진 A가 A인지 확인하고 영문 A가 아닐 경우 한/영키를 눌러 전환한다.
아래 코드를 복붙하여 사용 (파일명은 esc_force_english.ahk
로 지정하였음)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
; shift+space = underbar (_)
; +Space::
; Send, _
; return
; ^[::
; ^Space::
; ret := IME_CHECK("A")
; if %ret% <> 0 ; 1 means IME is in Hangul(Korean) mode now.
; {
; ; MsgBox, 0, test, test1, ]
; Send, ^
; Send, ^
; Send, {vk15} ;한글인 경우 Esc키를 입력하고 한영키를 입력해 준다.
; Sleep, 5
; Send, {Esc}
; }
; else if %ret% = 0 ; 0 means IME is in English mode now.
; {
; ; MsgBox, 0, test, test2, ]
; Send, ^
; Send, ^
; Send, {Esc} ;영문인 경우 Esc키만 입력한다.
; }
; return
;
; ; IME check
$Esc::
ret := IME_CHECK("A")
if %ret% <> 0 ; 1 means IME is in Hangul(Korean) mode now.
{
Send, {vk15} ;한글인 경우 Esc키를 입력하고 한영키를 입력해 준다.
Sleep, 10
Send, {Esc}
}
else if %ret% = 0 ; 0 means IME is in English mode now.
{
Send, {Esc} ;영문인 경우 Esc키만 입력한다.
}
return
; IME check
IME_CHECK(WinTitle) {
WinGet,hWnd,ID,%WinTitle%
Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"")
}
Send_ImeControl(DefaultIMEWnd, wParam, lParam) {
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd%
if (DetectSave <> A_DetectHiddenWindows)
DetectHiddenWindows,%DetectSave%
return ErrorLevel
}
ImmGetDefaultIMEWnd(hWnd) {
return DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
}
Send, {Esc}
이후 Send, {vk15}
를 누르게 되면 알 수 없는 오류가 발생하여
한영키가 눌러지는 시점을 esc보다 앞당겼다.
또한 한영키를 누르고 대기 시간을 주지 않을 경우 한영전환이 안되는 경우가 있어
sleep 타임을 주어 해결하였다.
윈도우 시작 시 자동실행
-
Win+R
눌러 실행창 진입 -
shell:startup
입력 후 엔터 - 생성한
esc_force_english.ahk
파일을 해당 폴더로 이동 - 동작 확인
This post is licensed under CC BY 4.0 by the author.