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