我尝试了许多来自互联网的 AutoHotKey 脚本来解决这个问题,包括这个问题之前的答案中提到的所有版本。不幸的是,它们都没有正常工作。其中一些一开始似乎有效,但存在一些微妙的问题。
在这个问题上花了很长时间后,我终于设法创建了一个似乎可以工作的版本(有点)。
在此处发布代码,供那些通过谷歌搜索找到此页面的人使用。
使用此脚本,只要按下 right alt,ijkl 就会用作箭头键。它似乎与 shift 和 control 结合使用效果很好。
不过,缺点是右alt失去了原来的功能。这对我来说不是问题,因为我只使用左 alt。
如果您不想牺牲正确的alt,可以将“RAlt”替换为“CapsLock”,它也可以工作。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; Arrows & navigation
Hotkey, *i, Off
Hotkey, *j, Off
Hotkey, *k, Off
Hotkey, *l, Off
*RAlt::
Hotkey, *i, on
Hotkey, *j, on
Hotkey, *k, on
Hotkey, *l, on
return
*RAlt up::
Hotkey, *i, off
Hotkey, *j, off
Hotkey, *k, off
Hotkey, *l, off
return
*i::send {blind}{up}
*j::send {blind}{left}
*k::send {blind}{down}
*l::send {blind}{right}
Hans Winterhalter 的版本几乎可以工作。但是,至少在我的电脑上,如果我按住 alt+shift+j,然后它会开始选择文本(如预期的那样),但是如果我按住它足够长的时间,在某些时候,快捷方式不起作用,它只是打印字母 J,破坏选定的文本,这绝对是不可取的。