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


9

我与所有十个手指键入所以我使用Alt+ HJKL)快捷键Vim中插入模式下移动光标,这是非常酷:)我想重新映射箭头键在X(侏儒)在所有的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>

Answers:


2

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

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

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

  1. 单独按下时
  2. 按住Shift键时
  3. 在启用模式开关的情况下按下(似乎已过时)
  4. 用模式开关和换挡按下时(似乎已过时)
  5. 与Alt-Gr一起按下时(在xmodmap术语中也称为ISO_Level3_Shift)
  6. 用Alt-Gr按下并移动时

因此,目前我的“ h”键如下所示:

中风中风

Hstroke键符产生Ħ的位置。

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

xmodmap -e 'keycode 43 = h H h H Left Hstroke'
xmodmap -e 'keycode 44 = j J j J Up J'
xmodmap -e 'keycode 45 = k K k K Down ampersand'
xmodmap -e 'keycode 46 = l L l L Right Lstroke'

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

要永久保留此设置,可以将以下内容添加到主目录中的.Xmodmap

keycode 43 = h H h H Left Hstroke
keycode 44 = j J j J Up J
keycode 45 = k K k K Down ampersand
keycode 46 = l L l L Right Lstroke

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

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


0

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

xvkbd允许您通过命令行发送键盘事件,而Keyboard Shortcuts则允许您将命令行绑定到按键事件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.