man bash
说:
向后删除字符(Routout)
删除光标后面的字符。当给定数字参数时,将删除的文本保存在终止环上。
Rubout只是键盘上的Delete键吗?因为它与bash描述的backward-delete-char具有相同的功能。
但是当我尝试时:
向后杀伤线(Cx Rubout)
向后杀到行首。
考虑以下情况:
$ testa testb testc testd
假设该点位于testc
'st,现在我按 Control+x,然后按键盘上的删除键。结果是:
$ testa testb [3~testc testd
我只是无法理解,我错过了什么吗?
答案1
简单的描述中需要明确三个概念:
向后删除字符(Routout)
键
有一个名为 的键Delete,您在示例中使用了它。
该键删除“下一个字符”。
如果该行包含test1
并且光标(闪烁的指示器)位于字母上s
,Delete则将删除s
。
相反,有一个名为 的键Backspace,在完全相同的条件下,该键将删除字母e
。这就是那封信领先于光标。Backspacebash 手册中的“backward-delete-char (Rubout)”描述了该键。
那个键,显然是“删除光标后面的字符”。
数字参数
要给它一个“数字参数”,您需要按Alt- 2,例如,这会将 a2
作为下一个命令(或键)的参数。同样,如果该行中写入了单词 test,并且光标位于 处
s
,请按Alt- 2,然后按Backspace。那将后退te
删除单词 中的两个字符test
。杀环。当某些东西被删除时,在大多数情况下,被放置在杀戮环中。
要获取“杀环”内的内容,请使用ctrl- y。如果使用alt- 3-删除多个字符,Backspace这些字符将使用ctrl-重新出现y。
详细地:
如果您使用命令的参数Backspace,您将删除与参数所说的光标当前位置“之前”一样多的字符。
如果命令提示符下有这个字符串:
$ testa testb testc
并且光标位于字母“b”下方,一个Alt- 3-Backspace将删除字符“est”:
$ testa tb testc
这些字符将被打印回来ctrl-y
现在:
向后杀伤线(Cx Rubout)
按下方式:ctrl-x Backspace
这会将整行放置在终止环中“光标之前”。
并且,这些键:ctrl-x Delete没有为它们定义任何操作,这将打印等效的 ANSI 代码:
[3~
在您的终端中。这可以在 bash 使用的 readline 库的 ~/.inputrc 中进行更改。但我相信这超出了这个答案的范围。