linux – 什么是Readline reverse-delete-char(Rubout)

男人bash说:

backward-delete-char (Rubout)

Delete the character behind the cursor. When given a numeric argument, save the deleted text on the kill ring.

Rubout只是键盘上的删除键吗?因为它具有与bash描述的反向删除字符相同的功能.

但是当我尝试:

backward-kill-line (C-x Rubout)

Kill backward to the beginning of the line.

考虑以下案例:

$testa testb testc testd

假设该点在testc的t上,现在我按下Control x然后按键盘上的Delete键.结果是:

$testa testb [3~testc testd

我只是无法理解,我错过了什么?

最佳答案
在以下简单描述中有三个概念需要澄清:

backward-delete-char (Rubout)

>钥匙
有一个名为Delete的键,您在示例中使用的键.
该键删除“下一个字符”.
如果该行包含test1且光标(闪烁指示符)超过字母s,则删除将删除s.
相比之下,有一个名为Backspace的键,在完全相同的条件下将删除字母e.那是光标前面的字母.

退格键由bash手册中的“backward-delete-char(Rubout)”描述.

那个键,显然是“删除光标后面的字符”.
>数字参数
要给它一个“数字参数”,你需要按Alt-2,例如,它将2作为参数放到下一个命令(或键).

同样,如果单词test写在行中,并且光标位于s处,请按Alt-2然后按退格键.那将会删除两个字符,即单词test中的te.
>杀人戒指.
当某些东西被删除时,在大多数情况下,被放置在杀戮戒指中.
要获得“杀死戒指”内的内容,请使用ctrl-y.

如果使用alt-3-Backspace删除多个字符,那么这些字符将使用ctrl-y重新显示.

详细地:

如果对Backspace命令使用参数,则将擦除与参数在光标当前位置“之前”之前说的字符数一样多的字符.

如果命令提示符处有此字符串:

$testa testb testc

并且光标位于字母“b”下方,Alt-3-Backspace将删除字符“est”:

$testa tb testc

这些字符将用ctrl-y打印回来

现在:

backward-kill-line (C-x Rubout)

按下方式:ctrl-x Backspace

这将把整行放在杀戮戒指中的“光标之前”.

并且,键:ctrl-x Delete没有为它们定义任何操作,这将使等效的ANSI代码被打印:

[3~

在你的终端.这可以在〜/ .inputrc中为bash使用的readline库进行更改.但我认为,这超出了这个答案的范围.

转载注明原文:linux – 什么是Readline reverse-delete-char(Rubout) - 代码日志