我使用的是 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
条件中选择合适的值。