最近我已经习惯了使用 vim 的 hjkl 来移动,并且发现自己想在按下 alt 键退出 vim 后立即使用它们。
将 fn + h/j/k/l 映射到左/下/上/右的最佳方法是什么?
编辑:<modifier>
只要不与其他键盘快捷键冲突,任何 + h/j/k/l 都可以。
答案1
尝试这些,不能保证是否会破坏任何东西,但我希望不会:
如果你查看映射
xmodmap -pke
,你会看到它有四列字符映射到每个键,用于不同的修改。这些修改的顺序如下keycode <x> = <1> <2> <3> <4>
<1> <key>
<2> <shift-key>
<3> <"Mode_switch"-key>
<4> <shift-"Mode_switch"-key>
“Mode_switch”,不完全确定,但我猜默认情况下不映射到任何内容。实际上,您可以使用查看键的代码,
xmodmap
并在结果底部的某个地方查找它,并找出该代码属于哪个键。我所做的是将它重新分配给另一个键,例如Super_L
,即 lefp 超级键,如下所示:xmodmap -e "keysym Super_L = Mode_switch"
或者你可以用自己的选择代替
Super_L
现在,继续编辑您想要重新分配的四个键的列。让我们在您的
xmodmap
文件中找到它们:xmodmap -pke | grep h
输出中应该是这样的一行
keycode 43 = h H h H
编辑它,这样它就像
keycode 43 = h H Left H
为此,请使用命令
xmodmap -e "keycode 43 = h H Left H"
然后尝试是否有效。
对您想要映射的其余键执行此操作。
我认为这不太可能造成任何严重破坏,只要您可以返回并将 s 重新编辑keycode
为原始版本即可。唯一可怕的部分是我将“Mode_switch”映射到 Super_L。(编辑:这实际上禁用了我的超级键,我可以通过撤消分配来恢复工作,就是这样xmodmap -e "keysym Mode_switch = Super_L"
。将你知道不会失败的键映射到 Mode_switch)
答案2
虽然我很同情你(我有一个 Happy Hacking 键盘,并且希望在我的笔记本电脑上也有同样的布局,Fn + ;'[/ 分别表示左右上下),但功能键Fn
几乎总是完全在硬件中实现,并且没有办法在软件中将其绑定为修饰键。
答案3
如果任何AltGr
修饰符就可以了,然后使用进行以下工作xmodmap
。
h,j,k
首先,找到和的键码l
。这可以xev
在终端中运行,然后按下相应的键来完成。对我来说, 的键码h
是43
。要将此加号映射AltGr
到left
,请使用命令
xmodmap -e "keycode 43 = h H NoSymbol NoSymbol Left"
对其余键重复上述操作,即可完成:)要设置启动时,请参阅此问答。
答案4
Alt_l
以下是使用修饰符的完整示例,已在 Ubuntu 21.04 上测试
xmodmap -e "keycode 64 = Mode_switch" # set Alt_l as the "Mode_switch"
xmodmap -e "keycode 43 = h H Left H" # h
xmodmap -e "keycode 44 = j J Down J" # j
xmodmap -e "keycode 45 = k K Up K" # k
xmodmap -e "keycode 46 = l L Right L" # l
注意:您可以使用该xev
命令来查找任何您想要用作修饰键的键的键码