释放 Ctrl 和 Shift 不能与 Caps Lock 一起正常工作

问题描述

我尝试做 Ctrl+f+j 的快捷方式,以便 Ctrl+j 使 ja 向左箭头,而 f 的组合将使其成为 Ctrl(d 应与 shift 相同),因此 Ctrl+ f+j 将被视为 Ctrl+向左箭头。

我已经成功让它工作了,但是在我松开按键后,f 和 d 卡住了,我无法返回正常模式。

我有以下代码

CapsLock & j::
{
    Send,{blind}{Left}
    return
    f::Ctrl
    d::Shift
    return
}
CapsLock & l::
{
    Send,{blind}{Right}
    return
    f::Ctrl
    d::Shift
    return
}

CapsLock up::
{
    Send {Ctrl Up}
    Send {Shift Up}
    return
}

这在我释放 l 键之前运行良好,因为之后无法使用 d 和 f 键。任何想法为什么?我只是不能经常使用它们它们保持 Ctrl 和 Shift 的功能

解决方法

解决方案是分离组合。结果 ahk 不支持嵌套热键,这样做会弄乱键的释放。以下代码解决了我的问题。

CapsLock & l::Send,{blind}{Right}
CapsLock & j::Send,{blind}{Left}

CapsLock & f::Ctrl
CapsLock & d::Shift