我在 Emacs 中使用 Meta-ijkl 作为箭头,并M-;
作为退格键,所以我想让 bash 中的按键代表相同的样式。移动和删除效果很好,但由于某种原因,我无法绑定unix-line-discard
到C-;
这会擦除从光标到开头的整行到终止缓冲区中。由于用于复制、删除和复制的默认 emacs 键是C-j
、C-k
和C-y
,因此另一个 C- 组合非常适合这里。并且\e:
(Meta-Shift-;) 已经绑定到backward-kill-word
.默认C-u
情况unix-line-discard
下,工作正常,但按起来不方便。如果我将此函数重新绑定到,例如,\C-g
它也可以正常工作。
在~/.inputrc
我有
"\C-;": unix-line-discard
我也尝试过
"\C-\;": unix-line-discard
"\C-\x3b": unix-line-discard
没有效果。C-v C-;
在 shell 中,除了通常的分号之外,不会打印任何内容,并且\C-;
其所有变体也只打印它,仅此而已。
我在 Urxvt 工作。
答案1
control;同意@meuh 的评论,终端(通常)不会生成不同的代码。
这关联@tijagi 建议适用于xterm
但不适用于urxvt
.使用手册页urxvt
显示您可以从这里开始:
keysym.sym: string
Compile frills: Associate string with keysym sym. The intervening
resource name keysym. cannot be omitted.
并使用如下设置之一:
*keysym.Control-semicolon: mybinding
URxvt.keysym.Control-semicolon: mybinding
根据需要使用类名来覆盖现有资源,并且在哪里我的绑定urxvt
是您键入时想要发送的任何内容control;(但请阅读手册页以获得正确的语法)。 @meuh 建议使用\025
( ^U
) 因为它通常绑定到unix-line-discard
.
进一步阅读: