简介
命令行编辑是 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
键。