如何使用 AutoHotkey 将“shift”键映射到“shift”+“capslock”?

如何使用 AutoHotkey 将“shift”键映射到“shift”+“capslock”?

我使用的是 Vim,所以我已将其重新映射capslockesc。但capslock有时我仍然想要。因此,我想知道将其重新映射shiftshift+ capslock

  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 毫秒,它将充当常规修饰键。

如果 100 毫秒太长,请在if条件中选择合适的值。

相关内容