将键盘箭头映射到快捷方式

iva*_*n73 9 shortcut-keys

我用十个手指打字,所以我在插入模式下在 Vim 中使用Alt+ H( J, K, L) 快捷方式来移动光标,这非常酷:) 我想重新映射 X (Gnome) 中的箭头键以在所有 X 中使用这些快捷方式应用

所以如果我按Alt+K它应该像向上箭头一样工作。

对于自我折磨 :) 你可以在你的 .gvimrc 中包含这些行

inoremap <Left>  <NOP>
inoremap <Right> <NOP>
inoremap <Up>    <NOP>
inoremap <Down>  <NOP>
inoremap <A-h> <Left>
inoremap <A-j> <Down>
inoremap <A-k> <Up>
inoremap <A-l> <Right>
Run Code Online (Sandbox Code Playgroud)

Rog*_*ght 2

不完全是你所要求的,但几乎......

\n\n

您可以使用该xmodmap命令重新映射 X 键盘设置。您可以通过运行查看当前设置xmodmap -pke

\n\n

每个键码(与键盘上每个键关联的值)最多可以附加 8 个键符号(本质上是输出)。它们如下:

\n\n
    \n
  1. 当单独按下时
  2. \n
  3. 当按下 Shift 键时
  4. \n
  5. 当启用模式开关时按下(似乎已过时)
  6. \n
  7. 当按下模式开关和 Shift 时(似乎已过时)
  8. \n
  9. 当按下 Alt-Gr 时(在 xmodmap 术语中又称为 ISO_Level3_Shift)
  10. \n
  11. 当按下 Alt-Gr 和 Shift 时
  12. \n
\n\n

所以目前我的“h”键看起来像:

\n\n

h H h H h 行程 H 行程

\n\n

其中 HStrike 键符号生成 \xc4\xa6。

\n\n

除非您使用 Alt-Gr 输入非 ASCII 字符,否则您可以使用 Alt-Gr 重新映射 h、j、k 和 l 来执行您想要的操作。这将是:

\n\n
xmodmap -e \'keycode 43 = h H h H Left Hstroke\'\nxmodmap -e \'keycode 44 = j J j J Up J\'\nxmodmap -e \'keycode 45 = k K k K Down ampersand\'\nxmodmap -e \'keycode 46 = l L l L Right Lstroke\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然,带有移位条目的 Alt-Gr 并不是绝对必要的,我只是保留已经存在的值。xev您可以通过从终端运行命令来查找键码值。xev显示 X 事件,因此您可以按某个键并查找有关它的信息。

\n\n

要使此设置永久生效,您可以将以下内容添加到主目录中的 .Xmodmap

\n\n
keycode 43 = h H h H Left Hstroke\nkeycode 44 = j J j J Up J\nkeycode 45 = k K k K Down ampersand\nkeycode 46 = l L l L Right Lstroke\n
Run Code Online (Sandbox Code Playgroud)\n\n

在使用 hjkl 时,按 Alt-Gr 当然不如按 Alt 好,但我认为您可能很难让 Alt 正常工作,因为它用于菜单访问。您可以使用此答案中的信息以及 Fraekkert 提到的工具来绑定(例如 Alt-Shift-h),这可能更适合您。

\n\n

还可能值得注意的是,您可以使用 .bashrc 在 bash(或您使用的任何 shell)中设置 vi 模式set -o vi。这为您在编辑命令行和历史记录时提供了类似 vi 的行为。我不相信这会查看你的 .vimrc,所以不要指望你的按键重新映射能够工作。

\n


Las*_*ini 0

我将使用“键盘快捷键”首选项窗格和 xvkbd 的组合。

xvkbd 允许您通过命令行发送键盘事件,键盘快捷键允许您将命令行绑定到按键事件。