我想在整个操作系统(所有应用程序)中使用ctrl + hasLeft Arrow等(vim 风格)。我使用 gnome 3.16.4。
ctrl+h新闻稿序列的 xev 结果是:
KeyPress event, serial 37, synthetic NO, window 0x3000001,
root 0xf6, subw 0x0, time 8058713, (-860,225), root:(166,344),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x3000001,
root 0xf6, subw 0x0, time 8058895, (-860,225), root:(166,344),
state 0x4, keycode 43 (keysym 0x68, h), same_screen YES,
XLookupString gives 1 bytes: (08) "
XmbLookupString gives 1 bytes: (08) "
XFilterEvent returns: False
KeyRelease event (...)
一行h如下:
XLookupString gives 1 bytes: (68) "h"
向左箭头很简单:
keycode 113 (keysym 0xff51, Left)
实现
CTRL 的基本原理
首先我想分配,,,fn + h但它似乎以软件方式不可能。和也分别用作注销和最小窗口。左 Alt 看起来是最好的选择,但在某些程序中,它充当附加字母(编码)(例如,按下 alt 时,vim 和 gvim 会看到不同的键)。jklwindows + lwindows + h
我知道使用 会失去一些功能ctrl,但到目前为止我从未ctrl在终端中使用过 default + hjkl 快捷方式(我使用 .inputrc 中设置的 vi 模式映射)
xevAlt + h版本:
KeyPress event, serial 37, synthetic NO, window 0x1e00001,
root 0xf6, subw 0x0, time 2180657, (434,71), root:(484,158),
state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x1e00001,
root 0xf6, subw 0x0, time 2180851, (434,71), root:(484,158),
state 0x8, keycode 43 (keysym 0x68, h), same_screen YES,
XLookupString gives 1 bytes: (68) "h"
XmbLookupString gives 1 bytes: (68) "h"
XFilterEvent returns: False
答案1
Control H
, J
,L
已经在终端中得到了广泛的应用:
- controlH用于擦除(Linux 除外)
- controlJ是新队
- controlL换页相当于清除屏幕
在 中bash
,controlK默认绑定到kill-line
。
可以更改这些分配,但此后您的计算机将不再有用。