Autohotkey 自动热键是否有';测试我的脚本';特征?

Autohotkey 自动热键是否有';测试我的脚本';特征?,autohotkey,Autohotkey,我问了一个关于emacs(在Cygwin中)用于重新映射Ctrl键和Alt键的自动热键脚本的问题。问题是: 我一直在测试我的脚本的一种方法是打开emacs并使用C-hk特性,它显示了一个键序列的文档。它允许我确认Autohotkey是否正在执行我期望的操作 然而,似乎存在一些复杂情况,例如,可能是Cygwin终端不允许序列C-M-SPC进入emacs,因此emacs实际上只接收C-SPC 因此,我的问题是:“自动热键”是否有自己的测试工具,可以显示当您按键盘上的几个组合键时,自动热键接收和发送的

我问了一个关于emacs(在Cygwin中)用于重新映射Ctrl键和Alt键的自动热键脚本的问题。问题是:

我一直在测试我的脚本的一种方法是打开emacs并使用
C-hk
特性,它显示了一个键序列的文档。它允许我确认Autohotkey是否正在执行我期望的操作

然而,似乎存在一些复杂情况,例如,可能是Cygwin终端不允许序列
C-M-SPC
进入emacs,因此emacs实际上只接收
C-SPC

因此,我的问题是:“自动热键”是否有自己的测试工具,可以显示当您按键盘上的几个组合键时,自动热键接收和发送的内容?如果是的话,我将能够确认我的脚本是否工作正常,然后决定是否是其他问题导致我无法将密钥序列传递到emacs

根据Armin建议的答案更新

根据Armin的建议,以下是我在执行以下操作后在AHK视图屏幕中看到的内容:

  • 在Cygwin窗口中单击鼠标以激活它(我已经在那里运行emacs)
  • 按LeftAlt+h,然后按k,我知道AHK会将其转换为
    C-hk
    ,这是emacs中的“告诉我下一个键盘序列的含义”
  • 在emacs帮助提示下,按Left Win+Left Alt+SPACE
  • 请参见emacs向我显示
    C-M-@
    的文档(顺便说一下,它也绑定到键序列
    C-M-SPC
  • 在AHK视图窗口中单击鼠标返回并用F5刷新
  • 以下是AHK窗口中输出的相关部分(将较长的行缩短一点以停止此处的换行):

    它显示了许多正在发生的事情

    我的理解是,这证明了AHK正确地将我的左Alt+左Win+空格转换为
    C-M-SPC

    下面是一个解释,为什么我认为证明是这样做的

    这里是我按下LAlt down,它被转换成一个向下的
    LCtrl

    A4  038 h   d   4.18    LAlt            /cygdrive/c/...
    A4  038 i   u   0.00    LAlt            
    A2  01D i   d   0.00    LControl        
    
    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        
    

    (但我不知道<代码> u>代码> LALT在中间——AHK解释“i =忽略,因为它是由AHK脚本生成的。”< /P> 接下来是me按下并释放h:

    因此,此时emacs已收到
    C-h

    接下来我释放LAlt,然后按下并释放k

    Emacs现在进入“描述键序列”的帮助提示

    然后我下一步按下LAlt 我们看到AHK为
    LCtrl
    发送
    d
    信号(第二行
    LAlt
    u
    被忽略,这是我没有预料到的),然后我按下LWin,AHK发送
    d
    LAlt
    ,然后我按下空格:

    最后是我释放所有LAlt+LWin+空间的序列,我们看到AHK为
    SPACE
    LAlt
    LCtrl
    发送
    u
    信号:

    A4  038 h   d   4.18    LAlt            /cygdrive/c/...
    A4  038 i   u   0.00    LAlt            
    A2  01D i   d   0.00    LControl        
    
    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脚本实现了我的期望

    唯一剩下的问题是两次出现的
    LAlt
    的神秘
    u

    有什么想法吗?

    你可以尝试使用这个窗口

    • 运行热键脚本
    • 右键单击托盘图标并选择打开
    • 单击查看菜单并选择键历史记录和脚本信息

    您的问题的标题是“自动热键是否有测试我的脚本功能”-好吧,为了回答这个问题,我建议使用QuickAHK,它就是专门为此设计的!它有一个沙箱和许多其他功能。我一直使用它来测试代码片段(我只是一个普通用户,与程序毫无关联)

    这里是指向的链接,因为。 还有一个

    如果您进行了大量快速而肮脏的脚本开发或测试,那么 可能会使用一个允许您动态运行脚本的工具。 这些工具包括许多文本编辑器,它们是 自动热键论坛上发布的工具,或您自己编写的工具。QuickAHK是这些工具中的另一个。。。有几点不同:

    • 沙箱
    • 还原和还原
    • 停止脚本

    但是,还有一个是最新的和维护的。

    我使用列表行,然后在关键点暂停 最新的ahk还支持使用调试语句
    OutputDebug,Text

    您可以在[Key history and script info]视图中看到正在接收哪些密钥,但它不显示发送的内容。[最近执行的行]也不是完美的。使用GNU Emacs时遇到了与您相同的问题。涵盖了上的问题和可能的解决方案之一。不再有效。它重定向到论坛帖子。尝试QuickCodeTester-我在上面发布了链接。我建议将其作为一个单独的回复发布。由于您推荐两个不相关的程序,这两个程序应作为单独的回复发布。我看到您建议:;但我不同意你的看法。
    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 ...