• readline


    INITIALIZATION FILE

    Readline 通过一个初始化文件(即 inputrc 文件)中命令进行个性化定制。此文件的名称取自 INPUTRC 环境变量的值。如果环境变量 INPUTRC 未设置,则默认值为 ~/.inputrc。如果该文件不存在或无法读取,则最终默认值为 /etc/inputrc。当使用 readline 库的程序启动时,将读取 readline 的初始化文件,并设置键绑定和变量。readline 的初始化文件中只涉及几个基本结构:空行会被忽略;以 # 开头的行是注释;以 $ 开头的行表示条件结构。其他行表示键绑定和变量设置。使用此库的每个程序都可以添加自己的命令和绑定。

    例如,将
    M-Control-u: universal-argument
    or
    C-Meta-u: universal-argument
    放置在 inputrc 中将使得按下 M-C-u 时执行 readline 命令universal-argument

    设置键绑定时,可以识别以下符号字符名(symbolic character names):DEL、ESC、ESCAPE、LFD、NEWLINE、RET、RETURN、RUBOUT、SPACE、SPC和TAB。

    除了命令名之外,readline 还允许将键绑定到字符串(即 宏(macro)),该字符串在按键被按下时会填充到终端。

    Key Bindings

    在 inputrc 文件中控制键绑定的语法很简单。所需的只是命令的名称或宏的文本以及应该绑定到的按键。按键可以通过以下两种方式之一指定:1. 键名(keyname),可能带有Meta或Control前缀;2. 键序列(keyseq)。命令和按键由冒号分隔。按键(包括keyname方式和keyseq方式)和冒号之间不能有空格。

    方式一:keyname
    用法:
    keyname:function name

    keyname:function macro
    其中,keyname是用英语拼写的按键的名称。

    例子:

    Control-u: universal-argument
    Meta-Rubout: backward-kill-word
    Control-o: "> output"
    
    • 1
    • 2
    • 3

    在上面的示例中,Ctrl-u绑定到函数 universal-argumentMeta-DEL 绑定到函数 backward-kill-wordCtrl-o绑定到冒号右边的宏表达式(即,将 "> output" 填充到命令行)。

    方式二:keyseq
    用法:
    "keyseq":function name

    "keyseq":function macro
    其中,keyseq 与上面的 keyname 不同。按键通过将键序列放在双引号中来指定。可以使用一些 GNU Emacs 风格的按键转义符,如以下示例中所示,但无法识别符号字符名。

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

    在本例中,Ctrl-u再次绑定到universal-argumentCtrl-x Ctrl-r绑定到函数 re-read-init-fileESC[11~绑定到宏文本 "Function Key 1"

    指定按键时,可以使用一整套 GNU Emacs 样式的转义序列:

    • \C- control 前缀
    • \M- meta 前缀
    • \e ESC 字符
    • \\ 反斜杠
    • \" 一个双引号
    • \' 一个单引号

    除了 GNU Emacs 样式的转义序列之外,还提供了第二组反斜杠转义:

    • \a 警报(铃声)
    • \b 退格
    • \d 删除
    • \f 换页
    • \n 换行
    • \r 回车
    • \t 水平制表符
    • \v 垂直制表符
    • \nnn 值为八进制值nnn(一到三个数字)的八位字符
    • \xHH 值为十六进制值HH(一个或两个十六进制数字)的八位字符

    输入宏的文本时,应使用单引号或双引号来指示宏定义。不带引号的文本被假定为函数名。在宏中,将展开上述反斜杠转义。反斜杠将转义宏文本中的任何字符,包括 "'

    Bash 允许使用 bind 命令显示或修改当前的 readline 键绑定。通过在 set 命令中使用 -o 选项,可以在交互使用期间切换编辑模式。使用 readline 库的其他程序提供类似的机制。如果程序不提供设置或修改键绑定的方式,则可以通过编辑 inputrc 文件设置键绑定,并重新加载 inputrc 文件来使设置的键绑定生效。

  • 相关阅读:
    centos遇到的问题
    LocalDateTime获取时间类(当前时间)
    优秀的项目经理需要具备哪些能力?很关键
    挑选适合您的优秀项目管理软件
    Spring Boot 统一数据返回格式
    【强化学习】03 ——马尔可夫决策过程
    大语言模型|人工智能领域中备受关注的技术
    32.3D文本旋转动画效果
    第二章: 类加载子系统
    给大四毕业生的建议——春招、留学、考公
  • 原文地址:https://blog.csdn.net/qq_34548075/article/details/127909220