简介
命令行编辑是 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-f
-
向后移动一个单词(的位置)。单词是由字母和数字构成的;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