在我的vim
移动中hjkl,我使用Alt Gr+( wasd) (就像在游戏中一样,但使用 启用它Alt Gr),我喜欢它,请不要试图说服我这是个坏主意,事实并非如此。
事实上,据我所知,无法映射Alt Grin ,我所做的就是映射当您按+( ): łæßðvim
时发生的类似希腊字符。Alt Grwas
所以,我觉得这种替换箭头的方式对我的手指来说非常舒服,我真的很喜欢能够在任何地方使用它,不仅在vim
,我一直在阅读如何在 Linux 中重新映射按键(我使用 Manjaro),但是看起来你只能将一个键代码映射到另一个键代码,而我想做的是将字符(łæßð)映射到箭头的键代码。
有人知道该怎么做吗?
从我的.vimrc
:
"movement with a,d,w,s
noremap æ <left>
noremap ð <right>
noremap ß <down>
noremap ł <up>
inoremap æ <left>
inoremap ð <right>
inoremap ß <down>
inoremap ł <up>
发行版:Manjaro(内核:5.6.12-1-MANJARO)
桌面环境:KDE Plasma
答案1
简短回答
xmodmap -e 'keycode 38 = a A a A Left'
xmodmap -e 'keycode 40 = d D d D Right'
xmodmap -e 'keycode 25 = w W w W Up'
xmodmap -e 'keycode 39 = s S s S Down'
在任何图形环境启动脚本中编写这些行。
详细解答
人们可以使用以下命令重新映射键盘事件xmodmap
命令。例如,如果要将Altr Gr+重新映射 a 到左箭头,请使用以下命令:
xmodmap -e 'keycode 38 = a A a A Left'
您可以使用以下命令查找特定键的键码xev
:按下某个键时,终端将输出包含键码的信息。您可以使用以下命令建筑维基百科仅输出相关信息:
xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'
等信号右边的五个参数对应修饰符:
---> Caps Lock + a = A
|
------> Shift + a = A
| |
xmodmap -e 'keycode 38 = a A a A Left' --> Alt. Gr + a = Left
| |
-----> a = a
|
----> Ctrl. + a = a
为了在 KDE 启动时运行这些行,您可以在~/.config/autostart/
文件夹中添加一个桌面条目。您需要两个文件:一个包含xmodmap
设置,另一个用于启动桌面条目。让我们将映射设置写入~/.config/xmodmap/xmodmaprc
:
keycode 38 = a A a A Left
keycode 40 = d D d D Right
keycode 25 = w W w W Up
keycode 39 = s S s S Down
这是桌面条目文件的示例~/.config/autostart/xmodmap.desktop
:
[Desktop Entry]
Name[en_US]=Xmodmap
Comment[en_US]=xmodmap ~/.config/xmodmap/xmodmaprc
Exec=/usr/bin/xmodmap ~/.config/xmodmap/xmodmaprc
Icon=application-default-icon
X-KDE-Autostart-enabled=true
Type=Application
我的系统上没有运行任何桌面环境来尝试此操作,但它应该可以工作。
笔记
- 该
xmodmap
方法仅适用于图形环境。此映射在 Linux 控制台 ( ) 上不起作用tty
。看在 Linux 控制台上重新映射键盘。 - 请记住,每次布局更改时键盘都会重置。仅建议对单一布局配置使用此方法。
- 如果您做错了什么,
xmodmap
您可以使用 删除所有设置setxkbmap -option
。
答案2
您可以使用 xmodmap 或 xkbcomp。互联网上有很多如何使其工作的示例。对不起,但我认为复制/粘贴方法没有任何意义。