如何使用自动热键更改快捷键?

问题描述 投票:0回答:3

我使用德沃夏克键盘。像 ctrl+xctrl+cctrl+v 这样的快捷键很难使用,那么有没有办法将它们重新映射到 ctrl+qctrl+jctrl+ k 分别使用 AutoHotKey?谢谢!

keyboard-shortcuts shortcut autohotkey dvorak
3个回答
1
投票
确实很简单,只是为了达到你想要的效果,你需要以相反的方式编码:

^q::^x ^j::^c ^k::^v

翻译为

<what-keys-you-press>::<what-is-sent-instead>

。
请注意,如果某些应用程序碰巧定义了这些快捷方式,您可能会产生冲突。


0
投票
是的,这非常简单。

^x::^q ^c::^j ^v::^k

请注意,这不会改变原始快捷方式的行为。 为此,您还必须重新映射它们。 有关详细信息,请参阅帮助文件中的“重新映射键或鼠标按钮”。 它还描述了一种更直接地从注册表重新映射键的方法。


0
投票
德沃夏克将

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 的函数语法是否有所不同。)

© www.soinside.com 2019 - 2024. All rights reserved.