AutoHotkey 键绑定似乎覆盖了

AutoHotkey Keybindings seems to override

目标

我正在尝试重新绑定我的键盘,以便键盘快捷键的工作方式类似于 Mac;具体来说,Alt + key 结果是 Cmd(Ctrl) + Key

片段

#InstallKeybdHook
SendMode Input
LAlt::LCtrl

而且效果很好!

问题

当我尝试将 Alt+Tab(现在触发为 Ctrl+Tab)更改为原始 [=21] 时,问题就出现了=] 功能。

片段

LAlt & Tab::Send AltTab

甚至

LAlt & Tab::AltTab

似乎工作(可能工作)但它似乎覆盖了以前的 Alt+Key 功能并且 Alt 将正常工作。

想要的结果

Alt+s => Ctrl+ s

Alt+n => Ctrl+ n

Alt+o => Ctrl+ o

....

Alt+tab => AltTab

知道我可能做错了什么/遗漏了什么吗?

重新定义修改键的文档不够完整。 documentation 中没有关于 LAlt & Tab::AltTab 的内容(请注意,这是正确的方法,LAlt & Tab::Send AltTab 只会发送字符串“AltTab”)取消LAlt::LCtrl 重新映射,所以我无法准确告诉您问题出在哪里。我确实设法通过以下方式解决了它:

LAlt::LCtrl
LAlt up::Send {LAlt up}

#if GetKeyState("LAlt", "P")
*Tab::Send {LAlt down}{tab}
*+Tab::Send {LAlt down}{ShiftDown}{tab}{ShiftUp}
#If

它可以发送一些不需要的按键事件,但据我所知效果很好。