我使用德沃夏克键盘。像 ctrl+x、ctrl+c 和 ctrl+v 这样的快捷键很难使用,那么有没有办法将它们重新映射到 ctrl+q、ctrl+j 和 ctrl+ k 分别使用 AutoHotKey?谢谢!
^q::^x
^j::^c
^k::^v
翻译为
<what-keys-you-press>::<what-is-sent-instead>
。 请注意,如果某些应用程序碰巧定义了这些快捷方式,您可能会产生冲突。
^x::^q
^c::^j
^v::^k
请注意,这不会改变原始快捷方式的行为。 为此,您还必须重新映射它们。 有关详细信息,请参阅帮助文件中的“重新映射键或鼠标按钮”。 它还描述了一种更直接地从注册表重新映射键的方法。
w
和
v
放在一起。这使得只想粘贴时很容易意外关闭窗口。因此,如果您还想禁用“原始”快捷键,这似乎可行:
HandleCtrlQOrX(key) {
if (key = "x")
return
Send "^x" ; Send ctrl+x only if ctrl+q was pressed
}
^q::HandleCtrlQOrX("q")
^x::HandleCtrlQOrX("x")
HandleCtrlJOrC(key) {
if (key = "c")
return
Send "^c" ; Send ctrl+c only if ctrl+j was pressed
}
^j::HandleCtrlJOrC("j")
^c::HandleCtrlJOrC("c")
HandleCtrlKOrV(key) {
if (key = "v")
return
Send "^v" ; Send ctrl+v only if ctrl+k was pressed
}
^k::HandleCtrlKOrV("k")
^v::HandleCtrlKOrV("v")
这可以帮助重新训练快捷方式。对于进一步的示例,我还创建了 close_window.ahk 以及 x/c/v 重新分配:
HandleCtrlDOrW(key) {
if (key = "w")
return
Send "^w" ; Send ctrl+w only if ctrl+d was pressed
}
^d::HandleCtrlDOrW("d")
^w::HandleCtrlDOrW("w")
当然,将“d”更改为您想要的任何内容。(我使用 AutoHotkey v2.0 设置这些。我没有查看 v1.x 的函数语法是否有所不同。)