如何在Autohotkey中重新映射CTRL-x CTRL-c?

问题描述:

最近刚刚搬到Emacs的(并成为变形金刚迷),我想使用的AutoHotkey使按Ctrl +XCtrk + Ç通用的 “关闭” 命令。如何在Autohotkey中重新映射CTRL-x CTRL-c?

下面是我在我的.ahk文件:

; Universal Close 
:*:^x^c:: 
    WinClose, A 
    Return 

这似乎并没有工作。我究竟做错了什么?


要澄清我的按键,这里是序列:

  1. 按住CTRL 关键;
  2. 按下并释放X键;
  3. 按下并释放C键;
  4. 释放Ctrl键。

无论按下还是释放键(我不介意哪个),关闭活动窗口。


成功案例:我已经Honest Abe实施办法,增加一个小的调整,实际上是使用Emacs本身时避免烦恼。这里的最终结果(感谢,HA!):

; Universal Close 
$^x:: 
    IfWinActive, ahk_class Emacs 
     Sendinput, ^x 
    Else { 
     keywait, c, d, t0.6 
     If ErrorLevel 
      Sendinput, ^x 
     Else 
      WinClose, A 
     } 
    Return 

下面是等待0.6秒为Ç控制 + X之后被按压的例子:

$^x:: 
keywait, c, d, t0.6 
If ErrorLevel 
    Sendinput, ^x 
Else 
    WinClose, A 
Return 

如果C在0.6秒内未被按下控制 + X被发送。
$在一个热键发送自身(以避免无限循环)时,在开始时使用。

手册参考:
$
keywait

+0

谢谢。安装和“工作治疗”。 – 2012-08-16 08:17:08

+0

@HonestAbe列出的代码不适用于非英文键盘布局。第一行'$^x'运行良好,但'keywait'函数接受错误的字符并失败。你不知道如何解决它? – 2015-07-09 04:17:47

+0

@VasiliyKevroletin我的第一个想法是确保你有最新版本http://ahkscript.org/ ...并确保你保存为UTF-8。 – 2015-07-09 05:42:51

虽然这不是直接回答你的问题,你可能想看看XKeymacs,如果你还没有准备好,http://www.cam.hi-ho.ne.jp/oishi/indexen.html

它给您在所有/大多数Windows应用程序中都可以使用许多Emacs功能。与Emacs一样,它具有高度可配置性,因此您可以在全局或应用程序级别启用/禁用Emacs绑定。

对于每个人来说,这可能不是正确的解决方案,但是我离不开它。