如何绘制地图+ hjkl 到箭头键功能?

如何绘制地图+ hjkl 到箭头键功能?

最近我已经习惯了使用 vim 的 hjkl 来移动,并且发现自己想在按下 alt 键退出 vim 后立即使用它们。

将 fn + h/j/k/l 映射到左/下/上/右的最佳方法是什么?

编辑:<modifier>只要不与其他键盘快捷键冲突,任何 + h/j/k/l 都可以。

答案1

尝试这些,不能保证是否会破坏任何东西,但我希望不会:

  1. 如果你查看映射xmodmap -pke,你会看到它有四列字符映射到每个键,用于不同的修改。这些修改的顺序如下

    keycode <x> = <1> <2> <3> <4>

    <1> <key>

    <2> <shift-key>

    <3> <"Mode_switch"-key>

    <4> <shift-"Mode_switch"-key>

  2. “Mode_switch”,不完全确定,但我猜默认情况下不映射到任何内容。实际上,您可以使用查看键的代码,xmodmap并在结果底部的某个地方查找它,并找出该代码属于哪个键。我所做的是将它重新分配给另一个键,例如Super_L,即 lefp 超级键,如下所示:

    xmodmap -e "keysym Super_L = Mode_switch"
    

    或者你可以用自己的选择代替Super_L

  3. 现在,继续编辑您想要重新分配的四个键的列。让我们在您的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"
    

    然后尝试是否有效。

  4. 对您想要映射的其余键执行此操作。

我认为这不太可能造成任何严重破坏,只要您可以返回并将 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在终端中运行,然后按下相应的键来完成。对我来说, 的键码h43。要将此加号映射AltGrleft,请使用命令

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命令来查找任何您想要用作修饰键的键的键码

相关内容