如何绑定“\C-;”在~/.inputrc 中?

如何绑定“\C-;”在~/.inputrc 中?

我在 Emacs 中使用 Meta-ijkl 作为箭头,并M-;作为退格键,所以我想让 bash 中的按键代表相同的样式。移动和删除效果很好,但由于某种原因,我无法绑定unix-line-discardC-;这会擦除从光标到开头的整行到终止缓冲区中。由于用于复制、删除和复制的默认 emacs 键是C-jC-kC-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.

进一步阅读:

相关内容