什麼是 Readline 向後刪除字元(Rubout)
man bash
說:向後刪除字元(Rubout)
刪除游標後面的字元。當給定一個數字參數時,將刪除的文本保存在 kill ring 上。
Rubout只是鍵盤上的Delete鍵嗎?因為它與bash 描述的backward-delete-char 具有相同的功能。
但是當我嘗試時:
後退殺線(Cx Rubout)
向後殺到行首。
考慮以下情況:
$ testa testb testc testd
假設點在
testc
‘st,現在我按 Control+x 然後按鍵盤上的 Delete 鍵。結果是:$ testa testb [3~testc testd
我只是無法理解它,我錯過了什麼嗎?
在簡單的描述中需要澄清三個概念:
向後刪除字元(Rubout)
- 鍵
有一個名為 的鍵
Delete
,您在範例中使用它。該鍵擦除“下一個字元”。
如果該行包含
test1
並且游標(閃爍的指示器)在字母上方s
,Delete
將擦除s
。相比之下,有一個名為 的鍵
Backspace
,它在完全相同的條件下會擦除字母e
。那是游標 之前的字母。
Backspace
bash 手冊中的“backward-delete-char (Rubout)”描述了該鍵。那個鍵,顯然是“刪除游標後面的字元”。
- 數字參數
要給它一個“數字參數”,您需要按
Alt
-2
,例如,它將 a2
作為下一個命令(或鍵)的參數。同樣,如果在該行中寫入單詞 test,並且游標位於
s
,請按Alt
-2
,然後按Backspace
。這將Back擦除te
單詞中的兩個字元test
。
- 殺戒。當某些東西被擦除時,在大多數情況下,它會被放置在一個殺戮環中。
要獲取“殺戮戒指”內的內容,請使用
ctrl
-y
。如果您使用
alt
-3
-擦除多個字元Backspace
,這些字元將使用ctrl
-重新出現y
。詳細地:
如果您使用 command 的參數
Backspace
,您將擦除與參數所說的游標目前位置“之前”一樣多的字元。如果命令提示符下有此字元串:
$ testa testb testc
並且游標在字母“b”下,一個
Alt
-3
-Backspace
將刪除字元“est”:$ testa tb testc
這些字元將列印回來
ctrl
-y
現在:
後退殺線(Cx Rubout)
按壓方式:
ctrl
-x
Backspace
這會將整行“游標之前”放置在殺傷環中。
並且,這些鍵:
ctrl
-x
Delete
沒有為它們定義任何操作,這將列印等效的 ANSI 程式碼:[3~
在您的終端中。這可以在 ~/.inputrc 中更改 bash 使用的 readline 庫。但我相信,這超出了這個答案的範圍。