Readline Conditional Constructs
readline 实现了一种功能,本质上与 C 预处理器进行条件编译的功能类似, 允许根据测试的结果进行键盘关联和变量设置。其中使用了四种解释器指令。
$if
$if 结构允许根据编辑模式,正在使用的终端,使用 readline 的应用程序来设定按键关联。 测试的文本包括一行,直到行尾;不必用字符来隔离它。
mode
$if 结构的 mode= 形式用于测试 readline 处于 emacs 还是 vi 模式。 这可以与命令 set keymap 结合使用,例如,设置 emacs-standard 和 emacs-ctlx 键盘映射,仅当 readline 以 emacs 模式启动。
term
term= 形式用于包含与终端相关的按键关联,也许是将按键序列输出与终端的功能键相关联。 等号 = 右边的词被同终端的全名和名称中第一个 - 前面的一部分相比较。 例如,允许 sun 同时匹配 sun 和 sun-cmd。
application
application 结构用于包含应用程序相关的设置。每个使用 readline 的程序都设置 application name, 初始化文件可以测试它的值。它可用于将一个按键序列与对特定的程序有用的功能相关联。 例如,下列命令添加了一个按键序列,用以引用 bash 中当前的词或前一个词
$if Bash
Quote the current or previous word
"\C-xq": "\eb\"\ef\""
$endif
$endif
上例中的这个命令,结束了一个 $if 命令。
$else
如果测试失败,$if 指令中这个分支的命令将被执行。
$include
这个指令使用单个文件名作为参数,从文件中读取命令和按键关联。例如,下列指令 将读取 /etc/inputrc:
$include /etc/inputrc