简介:
要做到这一点,您有两种方法:
- 使用您自己的代码
- 使用第三方软件
在这些答案中,我介绍了最有效和最简单的方法,因此对于某些操作系统来说,编写自己的代码既容易又高效,而在另一些操作系统中,它的效率并不高,需要艰苦的工作,没有成就但浪费时间
WINDOWS 用户:
♣在此方法中,您将使用:
alt+I 而不是 ↑
alt kbd>+K 代替 ↓
alt+J 代替 ←
alt+L 而不是 →
♣要使用此功能,请按以下步骤操作:
- 下载安装autohotkey
- 右键单击桌面区域,然后转到新建并创建一个新的“记事本”文件
- 打开空记事本文件并将下面的代码复制/粘贴到该文件中
- 重命名您的记事本文件,但使用 *.ahk 格式
- 点击文件运行脚本
- 现在您可以尽情享受,再也不用箭头键了...
; #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.
; AHK Command ; key = Effect (Description)
; ALT Keypress Implied for all below
!i::Send {UP} ; i UP (Cursor up line)
!k::Send {DOWN} ; k DOWN (Cursor down line)
!j::Send {LEFT} ; j LEFT (Cursor left one character)
!l::Send {RIGHT} ; l RIGHT (Cursor right one character)
!h::Send {HOME} ; h ALT + RIGHT (Cursor to beginning of line)
!;::Send {END} ; ; ALT + LEFT (Cursor to end of line)
!u::Send ^{HOME} ; h SHIFT + HOME (Cursor to beginning of document)
!o::Send ^{END} ; o SHIFT + END (Cursor to end of document)
; CTRL + ALT Keypress Implied for all below
!^j::Send ^{LEFT} ; j CTRL + LEFT (Cursor left per word)
!^l::Send ^{RIGHT} ; l CTRL + RIGHT (Cursor right per word)
; SHIFT + ALT Keypress Implied for all below
!+i::Send +{UP} ; i SHIFT + UP (Highlight per line)
!+k::Send +{DOWN} ; k SHIFT + DOWN (Highlight per line)
!+j::Send +{LEFT} ; j SHIFT + LEFT (Highlight per character)
!+l::Send +{RIGHT} ; l SHIFT + RIGHT (Highlight per character)
!+h::Send +{HOME} ; h SHIFT + ALT + LEFT (Highlight to beginning of line)
!+;::Send +{END} ; ; SHIFT + ALT + RIGHT (Hightlight to end of line)
!+u::Send ^+{HOME} ; u SHIFT + CTRL + HOME (Highlight to beggininng of document)
!+o::Send ^+{END} ; o SHIFT + CTRL + END (Hightlight to end of document)
; SHIFT + CTRL + ALT Keypress Implied for all below
!+^j::Send +^{LEFT} ; j SHIFT + CTRL + LEFT (Highlight per word)
!+^l::Send +^{RIGHT} ; l SHIFT + CTRL + RIGHT (Hightlight per word)
!+^i::Send +!{UP} ; i SHIFT + ALT + UP (Multiply cursor up)
!+^k::Send +!{DOWN} ; k SHIFT + ALT + DOWN (Multiply cursor down)
; CTRL + SHIFT Keypress Implied for all below
+^i::Send +^{UP}
+^k::Send +^{DOWN}
重要说明
要使用你制作的自动热键脚本,每次打开电脑而不是每次都点击你的脚本,你可以将你的脚本复制到启动文件夹中。
如何找到启动文件夹?
-
赢+R
- 类型:shell:startup
- 将您的脚本复制到该文件夹中
MACOS 用户:
♣在此方法中,您将使用 :
option+I 而不是 ↑
option kbd>+K 代替 ↓
option+J 代替 ←
选项+L而不是→
使用hammerspoon
hammerspoon 是一个用于多种用途的强大工具(不仅仅是分配一个键绑定,例如您可以将它用于 windows sanping 或...),我认为这是任何 macos 中必备的工具之一
由于hammerspoon 的文档非常简单,我只是将代码放在这里,您可以从Getting Started with Hammerspoon 安装和配置hammerspoon
hs.hotkey.bind({"alt"}, "I", function()
hs.eventtap.keyStroke({}, "up")
end)
hs.hotkey.bind({"alt"}, "K", function()
hs.eventtap.keyStroke({}, "down")
end)
hs.hotkey.bind({"alt"}, "J", function()
hs.eventtap.keyStroke({}, "left")
end)
hs.hotkey.bind({"alt"}, "L", function()
hs.eventtap.keyStroke({}, "right")
end)
重要说明
如果您认为hammerspoon 运行缓慢或没有您想要的那么灵巧,另一种选择是Karabiner
基于 DEBIAN 的 LINUX 用户(非 ubuntu-见重要说明):
♣在此方法中,您将使用:
CapsLock+I 而不是 ↑
CapsLock kbd>+K 代替 ↓
CapsLock+J 代替 ←
CapsLock+L 而不是 →
和
alt_gr 而不是 CapsLock
♣怎么办?好吧:
-
打开终端,将您的键盘布局写入一个文件(我将其命名为 modmap),然后打开该文件并按照后续步骤进行编辑:
xmodmap -pke > modmap
gedit modmap
-
修改keyCode 108 (alt_Gr/ISO_Level3_Shift)的值,修改后应该是这样的:
keycode 108 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock Caps_Lock
-
修改keyCode 66(CapsLock)的值,修改后应该是这样的:
keycode 66 = Mode_switch Mode_switch Mode_switch Mode_switch Mode_switch Mode_switch
-
修改keyCode 31(i)的值,修改后应该是这样的:
keycode 31 = i I Up NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol
-
修改keyCode 44(j)的值,修改后应该是这样的:
keycode 44 = j J Left NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol
-
修改keyCode 45(k)值,修改后应该是这样的:
keycode 45 = k K Down NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol
-
修改keyCode 46(l)的值,修改后应该是这样的:
keycode 46 = l L Right NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol
重要说明
1- xmodmap 不再在 Ubuntu 上使用/支持(因为它对许多用户来说并不方便,我认为他们从 2013 年开始停止使用 xmodmap)但是因为这是一个非常快速编码和使用计算机的专业问题还有编码,我看到许多专业人士使用 Debian 或它自己的基于 debian 的 linux(不是 Ubuntu),他们总是更喜欢原生解决方案而不是插件或......
无论如何,如果您使用的是 Ubuntu,您可以使用 xkb 或 gnome 调整工具,您可以在 GUI 中调整键盘映射
2- 如果您的键盘上有多个语言/输入,则无法轻松使用此解决方案,但您可以像下面这样使用它:
CapsLock+shift+i 而不是 ↑
CapsLock +shift+k 而不是 ↓
CapsLock+shift+j 代替 ←
CapsLock+shift+l 代替 →
例如,如果您还想要 persian_language_input,您可以执行上面的步骤 1、2、3,然后更改其他步骤,如下所示:
keycode 31 = i I Arabic_heh Up 5 6 7 8
keycode 44 = j J Arabic_teh Left 5 6 7 8
keycode 45 = k K Arabic_noon Down 5 6 7 8
keycode 46 = l L Arabic_meem Right 5 6 7 8
注意不要在终端中测试以上键盘快捷键
3- 由于我们使用的是 xmodmap 工具(因为它是原生的,不像 xkb),您只能更改已经使用 AltGr 的键码的 AltGr 键符。所以我们用 CapsLock 改变它来解决这个问题,因为 capslock 让手指更舒服,发现它是一个非常可接受的解决方案。
4- 在大多数情况下 alt_Gr 是键盘上正确的 alt 键
关于 xmodmap 的进一步阅读:
ArchWiki - xmodmap
如果有人在 BSD OS(或基于 BSD)中了解此答案,我将不胜感激,如果他/她将其添加到我的答案中