如何使用 AutoHotkey 將“shift”鍵映射為“shift”+“capslock”?

如何使用 AutoHotkey 將“shift”鍵映射為“shift”+“capslock”?

我正在使用 Vim,因此我已重新映射capslockesc.但capslock有時候我還是想要。所以我想重新映射shiftshift+ capslock

  1. 以正常方式使用時shift:長按並釋放,它仍然應該作為shift將打字更改為大寫的按鍵。
  2. shift點擊(短按並釋放)時,它應該切換capslock

這樣的事情可能嗎?有人知道他們可以分享的任何 AutoHotkey 腳本或有關如何執行此操作的提示嗎?

答案1

使用這個 AutoHotkey 腳本,稍作修改艾略特·德諾夫的回答:

~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 毫秒,它將充當常規修飾鍵。

如果 100 毫秒太長,請在if條件中選擇合適的值。

相關內容