2012-08-15 106 views
4

最近剛剛搬到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 

回答

4

下面是等待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

1

雖然這不是直接回答你的問題,你可能想看看XKeymacs,如果你還沒有準備好,http://www.cam.hi-ho.ne.jp/oishi/indexen.html

它給您在所有/大多數Windows應用程序中都可以使用許多Emacs功能。與Emacs一樣,它具有高度可配置性,因此您可以在全局或應用程序級別啓用/禁用Emacs綁定。

對於每個人來說,這可能不是正確的解決方案,但是我離不開它。