我问了一个关于我用于emacs(在Cygwin中)重新映射Ctrl和Alt键的Autohotkey脚本的问题。以下是问题:https://stackoverflow.com/q/15899963/1243435。
我测试我的脚本的一种方法是打开emacs并使用显示键序列文档的C-h k
功能。它允许我确认Autohotkey是否正在做我期望的事情。
然而,似乎存在一些复杂性,例如可能是Cygwin终端不允许序列C-M-SPC
“通过”到emacs,因此emacs实际上只接收C-SPC
而不是
我的问题是:Autohotkey是否有自己的测试工具,当您按下键盘上的几个组合键时,它会显示Autohotkey接收和发送的内容?如果是,我将能够确认我的脚本是否正常工作,然后确定是否是其他问题导致我将关键序列传递给emacs时出现问题。
根据Armin建议的答案进行更新
根据Armin的建议,以下是我在执行以下操作后在AHK视图屏幕中看到的内容:
C-h k
,这就是'告诉我什么下一个键盘序列意味着'在emacs中,C-M-@
的文档(顺便说一下,它也绑定了密钥序列C-M-SPC
),以下是AHK窗口中输出的相关部分(以模数缩短较长的行以停止自动换行):
VK SC Type Up/Dn Elapsed Key Window
----------------------------------------------------------
A4 038 h d 4.18 LAlt /cygdrive/c/...
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
48 023 d 0.09 H
48 023 u 0.09 H
A4 038 h u 0.05 LAlt
A2 01D i u 0.00 LControl
4B 025 d 1.22 K
4B 025 u 0.06 K
A4 038 h d 1.12 LAlt
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
5B 15B h d 0.02 LWin
A4 038 i d 0.00 LAlt
20 039 d 0.19 Space
20 039 u 0.06 Space
5B 15B h u 0.16 LWin
A4 038 i u 0.00 LAlt
A4 038 h u 0.00 LAlt
A2 01D i u 0.01 LControl
74 03F d 1.90 F5 C:\...\AutoHotkey.ahk ...
它显示了很多事情。
我的理解是,这证明AHK正确地将我的 Left Alt + Left Win + SPACE 转换为C-M-SPC
。
下面解释为什么我认为证明已经完成。
这是我按下 LAlt ,然后将其转换为LCtrl
:
A4 038 h d 4.18 LAlt /cygdrive/c/...
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
(但我不确定u
LAlt
的中间位置是什么 - AHK解释说'i =忽略因为它是由AHK脚本生成的'。“
接下来是我按下并释放 h :
48 023 d 0.09 H
48 023 u 0.09 H
所以此时emacs已收到C-h
。
接下来我发布 LAlt ,然后按下并释放 k 。
A4 038 h u 0.05 LAlt
A2 01D i u 0.00 LControl
4B 025 d 1.22 K
4B 025 u 0.06 K
Emacs现在进入'描述键序列'的帮助提示。
然后我接着按下 LAlt
我们看到AHK为d
发送了LCtrl
个信号(并且在第二行上再次显示'u
LAlt
,我不会预料到这一点,然后我按下 LWin ,AHK发送d
LAlt
,然后按下 SPACE :
A4 038 h d 1.12 LAlt
A4 038 i u 0.00 LAlt
A2 01D i d 0.00 LControl
5B 15B h d 0.02 LWin
A4 038 i d 0.00 LAlt
20 039 d 0.19 Space
最后是我释放所有那些 LAlt + LWin + SPACE 的序列,我们看到AHK发送u
个信号适用于Space
和LAlt
以及LCtrl
:
20 039 u 0.06 Space
5B 15B h u 0.16 LWin
A4 038 i u 0.00 LAlt
A4 038 h u 0.00 LAlt
A2 01D i u 0.01 LControl
最后是在鼠标点击激活它之后刷新AHK视图窗口中的数据:
74 03F d 1.90 F5 C:\...\AutoHotkey.ahk ...
这似乎证明我的AHK脚本已经完成了我希望的工作。
只有剩下的问题是u
的{{1}}出现了两次。
有什么想法吗?
答案 0 :(得分:4)
答案 1 :(得分:1)
你的问题的标题是,“Autohotkey是否有测试我的脚本功能” - 好吧,为了回答这个问题,我建议使用QuickAHK,它就是为了做到这一点!它有一个沙箱,还有很多其他功能。我一直用它来测试片段(我只是一个普通的用户 - 根本没有与该程序有任何关系)。
以下是current thread的链接,因为old forum is defunct。 和current download link。
如果你做了很多快速和肮脏的脚本开发或测试,那么你 可能使用一个允许您动态运行脚本的工具。 这些工具包括许多文本编辑器,其中一个 AutoHotkey论坛上发布的工具,或者您自己编写的工具。 QuickAHK是这些工具中的另一个......但有一些不同之处:
但是,还有QuickCodeTester,它是最新的并且是最新的。
答案 2 :(得分:1)
我使用列表线,然后在关键点暂停 最新的ahk也支持使用调试语句 OutputDebug,Text