tij*_*agi 3 bash keyboard-shortcuts rxvt readline
我在 Emacs 中使用 Meta-ijkl 作为箭头,并M-;
作为退格键,所以我想让 bash 中的键代表相同的样式。移动和删除效果很好,但由于某种原因,我无法绑定unix-line-discard
到C-;
这会将从光标到开头的整行擦除到终止缓冲区中。由于默认的 emacs 复制、kill 和 yank 键是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
Run Code Online (Sandbox Code Playgroud)
我也试过
"\C-\;": unix-line-discard
"\C-\x3b": unix-line-discard
Run Code Online (Sandbox Code Playgroud)
没有效果。C-v C-;
除了通常的分号外,shell 中不打印任何内容,并且\C-;
它的所有变体也只打印它,仅此而已。
我在 Urxvt 工作。
同意@meuh 的评论,终端不会为control;(通常)生成不同的代码。
@tijagi 建议的链接xterm
适用于并且不适用于urxvt
. 使用手册页urxvt
显示您可以从这里开始:
keysym.sym: string
Compile frills: Associate string with keysym sym. The intervening
resource name keysym. cannot be omitted.
Run Code Online (Sandbox Code Playgroud)
并使用以下设置之一:
*keysym.Control-semicolon: mybinding
URxvt.keysym.Control-semicolon: mybinding
Run Code Online (Sandbox Code Playgroud)
根据需要使用类名来覆盖现有资源,并且mybinding是您urxvt
在键入时需要发送的任何内容control;(但请阅读手册页以获得正确的语法)。@meuh 建议使用\025
( ^U
),因为它通常绑定到unix-line-discard
.
进一步阅读: