![如何使用 AutoHotkey 将“shift”键映射到“shift”+“capslock”?](https://linux22.com/image/1443725/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20AutoHotkey%20%E5%B0%86%E2%80%9Cshift%E2%80%9D%E9%94%AE%E6%98%A0%E5%B0%84%E5%88%B0%E2%80%9Cshift%E2%80%9D%2B%E2%80%9Ccapslock%E2%80%9D%EF%BC%9F.png)
我使用的是 Vim,所以我已将其重新映射capslock到esc。但capslock有时我仍然想要。因此,我想知道将其重新映射shift到shift+ capslock:
- 以正常方式使用时shift:长按并释放,它仍可用作shift将打字方式改为大写字母的键。
- 当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
条件中选择合适的值。