簡介
命令行編輯是 Readline 庫提供的功能。這個庫被幾個不同的程序共用,Bash 就是其中給一個。使用交互式的 Shell 時,默認已經打開了命令行編輯,除非啓動Shell 時指定了 --noediting
選項。
鍵的表示方法
符號 C-k
讀作 “Control-K”,表示按下 Control
鍵時再按下 K
鍵所得到的的字符。
符號 M-k
讀作 “Meta-K”,表示按下 Meta
鍵(如果有這個鍵)時再按下 K
鍵所得到的的字符。
在很多鍵盤上, Meta
鍵都標記爲 ALT
。如果一個鍵盤上有兩個 ALT
鍵(通常在空格鍵的兩側),則一般左邊的那個可以當做 Meta
鍵使用,而右邊的那個 ALT
鍵可以配置成 Meta
鍵或者其他修飾鍵。
符號 M-C-k
讀作 “Meta-Control-K”,表示 Meta 化的 C-k
。
與 Readline 的交互
Readline 的移動命令
C-b
向前移動一個字符(的位置);C-f
向後移動一個字符(的位置);M-b
向前移動一個單詞(的位置)。單詞是由字母和數字構成的;M-b
向後移動一個單詞(的位置)。單詞是由字母和數字構成的;C-a
移動到行的開頭;C-e
移動到行的結尾;
Readline 的刪除命令
-
C-d
刪除光標下的字符; -
C-h
刪除光標之前的一個字符 -
C-w
從光標位置刪除到上一個空白字符。連續的空白字符被當做單個空白字符。; -
M-Backspace
從光標位置刪除到當前單詞的開頭;如果光標在單詞之間,則刪除到上一個單詞的開頭; -
M-d
從光標位置刪除到當前單詞的結尾;如果是在單詞之間,則刪除到下一個單詞的結尾;
Readline 的粘貼命令
C-k
刪除從光標位置到行首的所有字符;C-u
刪除從光標位置到行尾的所有字符;C-y
把最近刪除的文本插入到光標所在的緩存中;M-y
在刪除環中循環,病插入新的頂端文本。只有當前一個命令是C-y
或M-y
時纔可以使用這個命令。
Readline 的清屏命令
C-L
清除屏幕(可以回滾);Command-K
(無法回滾);這裏的Command
鍵指鍵盤上的Win
鍵 或者Command
鍵。