우아한 프로그래밍

왜 오토핫키 단축키가 필요한가?

무엇을 하던지 간에 동선을 최소화 해야만 최소의 힘을 들여서 최고의 결과를 도출 할 수 있다.
가령 요리를 할 때 각 재료와 도구들의 동선이 길다면 굉장히 비효율적이고 요리가 오래 걸리지 않겠는가?

그래서 동선을 최소화 하기 위한 단축키를 공유한다.

오토핫키 소스

;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; [ 간단 autoHokey 문법 정리 ]
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 
; 키 지정 방법: https://autohotkey.com/docs/Hotkeys.htm
; 전체 키 목록: https://autohotkey.com/docs/KeyList.htm
 
; #: Win
; !: Alt
; ^: Ctrl
; +: Shift
; &: 두개의 키 조합
 
; send는 한문자 일일이 타이핑하게 되고 (속도가 느리고)
; sendinput은 복사하여 붙여넣는 스피드로 (속도가 빠르다)
 
; { } 안에는 특정 키를 누르게 되며, { } 없는 것은 문자열로 인식하게 되어 타이핑 쳐지게 된다.
 
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - 기본 capslock기능을 꺼둠
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SetCapsLockState, AlwaysOff
 
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - capslock + a 키로 기본 capslock를 키고 끔
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Capslock & q::Capslock
 

;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - Capslock + f + d + i, j, k, l 조합
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#If GetKeyState("Capslock", "P") && GetKeyState("f", "P") && GetKeyState("d", "P")

j:: Send ^+{Left}
k:: Send ^+{Down}
l:: Send ^+{Right}
i:: Send ^+{Up}

#If

;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - Capslock + s + d + i, j, k, l 조합
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#If GetKeyState("Capslock", "P") && GetKeyState("s", "P") && GetKeyState("d", "P")

l:: Send !+{l}
i:: Send !+{Up}

#If



;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - Capslock + f + i, j, k, l 조합
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#If GetKeyState("Capslock", "P") && GetKeyState("d", "P")

j:: Send +{Left}
k:: Send +{Down}
l:: Send +{Right}
i:: Send +{Up}

#If

;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - Capslock + d + i, j, k, l 조합
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#If GetKeyState("Capslock", "P") && GetKeyState("f", "P")

j:: Send ^{Left}
k:: Send ^{Down}
l:: Send ^{Right}
i:: Send ^{Up}

#If


;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - Capslock 상태에서의 s와 d의 기본 입력을 막고 다른 조합이 없는 경우만 입력
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#If GetKeyState("Capslock", "P")
d::
f::
If !GetKeyState("f", "P") && !GetKeyState("d", "P")  ; s와 d가 조합키로 사용되지 않는 경우에만 입력 허용
{
    Send %A_ThisHotkey%
}
Return
s::
If !GetKeyState("s", "P") && !GetKeyState("d", "P")  ; s와 d가 조합키로 사용되지 않는 경우에만 입력 허용
{
    Send %A_ThisHotkey%
}
Return
#If

;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - Capslock키를 누르고 있을경우
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#If GetKeyState("Capslock","P")


j:: Send {Left} 
k:: Send {Down} 
l:: Send {Right} 
i:: Send {Up} 
u:: Send {Home} 
o:: Send {End}
p:: Send {PgUp}
r:: Send {Backspace}
e:: Send {Del}
m:: Send {=}
SC027:: Send {PgDn}
y:: Send {[}
h:: Send {{}
n:: Send {(}
v:: Send ^z
,:: Send _
.:: Send -




;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
; - s 키를 누르고 있을경우
;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
d & u:: Send +{Home} 
d & o:: Send +{End}


Del:: 
    Send {LWin Down}
    Send 1
    Send {LWin Up}
	Return
	
End:: 
    Send {LWin Down}
    Send 2
    Send {LWin Up}
	Return

PgDn:: 
    Send {LWin Down}
    Send 3
    Send {LWin Up}
	Return

Ins:: 
    Send {LWin Down}
    Send 4
    Send {LWin Up}
	Return

Home:: 
    Send {LWin Down}
    Send 5
    Send {LWin Up}
	Return

PgUp:: 
    Send {LWin Down}
    Send 6
    Send {LWin Up}
	Return

PrintScreen:: 
    Send {LWin Down}
    Send 7
    Send {LWin Up}
	Return

ScrollLock:: 
    Send {LWin Down}
    Send 8
    Send {LWin Up}
	Return

Pause:: 
    Send {LWin Down}
    Send 9
    Send {LWin Up}
	Return	

Space::
    Send, {Ctrl down}{Shift down}{Enter}{Shift up}{Ctrl up}
    return
	
	

#If
*CapsLock::
KeyWait, CapsLock
If A_ThisHotkey = *CapsLock
	Send, {vk15}
Return
profile

우아한 프로그래밍

@자바조아!

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!