Readline Key Bindings

inputrc 文件中的控制按键关联的语法非常简单。需要的内容是命令名或宏,以及它应当关联到的按键序列。 名称可以以两种方式指定:一个按键的符号名称,可能带有 Meta-Control- 前缀,或者是一个按键序列。

当使用 keyname:function-namemacro 形式时, keyname 是按键以英文拼写的名称。例如:

Control-u: universal-argument Meta-Rubout: backward-kill-word Control-o: "> output"

在上述例子中, C-u 被关联到函数 universal-argument, M-DEL 被关联到函数 backward-kill-word, 而 C-o 被关联为运行右边给出的宏 (意思是,将向行中插入 ``> output'' )。

在第二种形式中,"keyseq":function-namemacrokeyseq 不同于上面的 keyname, 表示整个按键序列的字符串可以通过将按键序列放在双引号引用中来指定。 可以使用一些 GNU Emacs 样式的按键序列,如下例所示,但是不会识别按键的符号名称。

"\C-u": universal-argument "\C-x\C-r": re-read-init-file "\e[11~": "Function Key 1"

在上述例子中, C-u 被又一次关联到函数 universal-argument. C-x C-r 被关联到函数 re-read-init-file, 而 ESC [ 1 1 ~ 被关联为插入文本 ``Function Key 1''.

GNU Emacs 样式的转义序列的全集为:

\C-

Ctrl 前缀

\M-

Meta 前缀

\e

一个 Esc 字符

\

反斜杠

\

字面上的 "

\'

字面上的 '

除了 GNU Emacs 样式的转义序列,还有一系列反斜杠转义序列可用:

\a

响铃

\b

回退

\d

删除

\f

进纸

\n

新行符

\r

回车

\t

水平跳格

\v

竖直跳格

\nnn

一个八比特字符,它的值是八进制值 nnn (一到三个八进制数字)。

\xHH

一个八比特字符,它的值是十六进制值 HH (一到两个十六进制数字)。

输入宏的文本时,必须使用单引号或双引号引用来表明是宏的定义。 没有引用的文本被当作函数名。在宏的定义体中,上述反斜杠转义被扩展。 反斜杠将引用宏文本中所有其他字符,包括 " 和 '。

Bash 允许使用内建命令 bind 来显示和修改当前 readline 按键关联。在交互使用中可以用内建命令 set-o 选项切换到编辑模式 (参见下面的 shell 内建命令(SHELL BUILTIN COMMANDS) 章节)。