将 Ctrl+w 映射到 Alt+w 会同时发送 Ctrl+Alt+w

将 Ctrl+w 映射到 Alt+w 会同时发送 Ctrl+Alt+w

我使用 Autohotkey 将 Ctrl+w 映射到 Alt+w,以便 Cloud9 像往常一样使用 Ctrl+w 而不是 Alt+w 关闭内部选项卡。我尝试使用以下简单映射

^w::!w

但是它发送 Ctrl+Alt+w 并关闭除当前选项卡之外的所有选项卡,这不是我想要的。

我怎样才能告诉 autohotkey 实际上不要发送我为该热键按下的 Ctrl 键?

答案1

请尝试以下操作:

Ctrl & w::Send !w

AutoHotKey 有特殊处理Ctrl键重新映射到Alt键:

当源键为 LCtrl 而目标键为 Alt 键时,行 Send {Blind}{LAlt DownTemp} 将被替换为 Send {Blind}{LCtrl Up}{LAlt DownTemp}。如果源键为 RCtrl,情况也一样,只不过使用的是 {RCtrl up}。

这种特殊处理是专门为防止您观察到的行为而设计的。如果您考虑更简单的重新映射,如p::v,您可能希望CtrlP被处理为 ,^v以便您可以使用 进行粘贴P。一般来说,AutoHotKey 会尝试允许修改键在触发热键时执行其操作。

答案2

这可能与此有关:

^x::^c 使 Control-X 产生 Control-C。它还使 Control-Alt-X 产生 Control-Alt-C,等等。

它取自 AutoHotkey 帮助页面。

您所做的是:Control-W 产生 Alt-W。

您说您想使用 Ctrl+W 来关闭标签。

如果 Ctrl-W 产生 Cltrl-Alt-W 因为它同时产生 Alt-W 和 Cltr-W,则意味着应用程序有时间捕获内部信号。

这可能是因为应用程序正在寻找 BIOS 键,或者自动热键反应不够快。

我记得有一个选项可以让自动热键休眠 x 时间或者同时发送更多信号。

同时发送更多信号将阻止来自 Bios 的按键到达应用程序。AutoHotkey 将始终翻译按键,因此应用程序将仅正确的键/AutoHotkey信号。

我希望我的长篇解释能对你有所帮助。

相关内容