AutoHotkey를 사용하여 "shift" 키를 "shift" + "capslock"에 매핑하는 방법은 무엇입니까?

AutoHotkey를 사용하여 "shift" 키를 "shift" + "capslock"에 매핑하는 방법은 무엇입니까?

저는 Vim을 사용하고 capslock있어서 esc. 하지만 난 아직도 capslock가끔 원해요. 그래서 + shift로 다시 매핑하는 것이 궁금합니다 .shiftcapslock

  1. shift일반적인 방법으로 사용되는 경우 : 길게 눌렀다가 놓아도 shift입력을 대문자로 변경하는 키로 작동해야 합니다.
  2. 을 탭 하면 shift(짧게 눌렀다 떼기) 전환되어야 합니다 capslock.

이런 일이 가능합니까? AutoHotkey 스크립트나 이를 수행하는 방법에 대한 팁을 알고 공유할 수 있는 사람이 있습니까?

답변1

다음에서 약간 수정된 AutoHotkey 스크립트를 사용하세요.Elliot DeNolf의 답변:

~Shift::
    duration := 0
    If (GetKeyState("Shift","p"))
    {
        start := A_TickCount
        While (GetKeyState("Shift"))
            Sleep, 1
        duration := A_TickCount - start
    }
    if (duration < 100) ;Change this value as needed
        if GetKeyState("CapsLock", "T") = 1
        {
            SetCapsLockState, off
        }
        else if GetKeyState("CapsLock", "T") = 0
        {
            SetCapsLockState, on
        }
    Return

Shift를 100밀리초 미만 동안 눌렀다가 떼면 CapsLk키가 전환됩니다. 100밀리초 이상이면 일반 수정자 키로 작동합니다.

100msec가 너무 길면 조건에서 적절한 값을 선택하십시오 if.

관련 정보