我已经使用autohotkey简单地将CapsLock重新映射到Control:
Capslock::Control ; make Caps Lock the control button
这样可以正常工作,但在Emacs中,如果我需要执行像Ctrl-x Ctrl-f
这样的键序列,而连续持有CapsLock键,注册的是Ctrl-x f
。为了获得正确的序列,我现在必须在像Ctrl-x <release> Ctrl-f
这样的击键之间释放CapsLock,这非常不方便。
有没有办法进行重新绑定,以便按住CapsLock完全按住控制按钮?
我还尝试了以下代码段但没有成功:
#IfWinActive ahk_class Emacs
{
CapsLock::
Sendinput {Ctrl Down}
KeyWait, CapsLock
Sendinput {Ctrl Up}
return
}
使用上面的Send
或Sendplay
代替Sendinput
也无法解决我的问题。
我的系统:
Windows 7 32位 AHK v1.1.13.01 Emacs 24.3
谢谢!
答案 0 :(得分:2)
我不确定为什么它不适合你。我将您的重新映射添加到我现有的脚本中,它似乎工作正常。你能发布更多你拥有的东西吗?我在我的顶部有以下命令,但我认为它们不会影响你的问题。
#Persistent
#SingleInstance, Force
命令GetKeystate 和SetKeyDelay可能会有所帮助。
答案 1 :(得分:1)
这是我使用的,它的工作原理:
*Capslock::LCtrl
星号记录在键盘控制&gt;下的帮助中。热键和热弦:
通配符:即使按下额外的修改器,也要触发热键。这通常与重新映射键或按钮结合使用。例如:
* #c ::运行Calc.exe; Win + C,Shift + Win + C,Ctrl + Win + C等都将触发此热键。
* ScrollLock :: Run Notepad;即使modifer键已关闭,按Scrolllock也会触发此热键。
在Windows 95/98 / ME上忽略此符号。
我实际上也有这个, + 大写锁定,如果我真的想要大写锁定:
<#Capslock::Capslock
答案 2 :(得分:0)
试试这个;
SetCapsLockState, AlwaysOff
CapsLock:: SendInput, {LCtrl Down}
Capslock Up:: SendInput, {LCtrl Up}