如何将 <modifier> + hjkl 映射到箭头键功能?

Dan*_*Que 5 keyboard-layout xmodmap

最近我已经习惯了 vim 的 hjkl 来四处走动,并且发现自己想在 alt 跳出 vim 后立即使用它们。

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

编辑:任何<modifier>+ h/j/k/l 都会令人满意,只要它不与其他键盘快捷键冲突。

ars*_*sra 4

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

  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"
    
    Run Code Online (Sandbox Code Playgroud)

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

  3. 现在,继续编辑您想要重新分配的四个键的列。让我们在您的xmodmap文件中找到它们:

    xmodmap -pke | grep h
    
    Run Code Online (Sandbox Code Playgroud)

    输出中应该是一行

    keycode 43 = h H h H
    
    Run Code Online (Sandbox Code Playgroud)

    编辑它,使它像

    keycode 43 = h H Left H
    
    Run Code Online (Sandbox Code Playgroud)

    为此,请使用命令

    xmodmap -e "keycode 43 = h H Left H"
    
    Run Code Online (Sandbox Code Playgroud)

    然后尝试是否有效。

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

我认为这不太可能破坏任何严重的事情,只要您可以返回并将 s 重新编辑keycode为原始内容即可。唯一可怕的部分是我将“Mode_switch”映射到 Super_L 的地方。(编辑:这实际上禁用了我的超级键,我可以通过反转分配来恢复工作,即xmodmap -e "keysym Mode_switch = Super_L"映射一个您知道不会让您失败的键到Mode_switch)