【问题标题】:inputrc file cannot be loaded [closed]无法加载 inputrc 文件[关闭]
【发布时间】:2013-02-08 05:57:36
【问题描述】:

我刚刚发现我们可以创建一个~/.inputrc 文件来定义键盘映射。但我不知道如何加载它。我试图找到它,但我立即得到一个“设置语法错误”。我从这里复制了~/.inputrc 文件:http://www.linuxfromscratch.org/lfs/view/6.2/chapter07/inputrc.html

它提到它是使用 Readline 加载的。那是什么意思?

【问题讨论】:

  • 我有一个可以运行的 inputrc,如果我尝试获取它,我会从 bash 中得到“找不到命令”错误......但是当我创建一个新终端时它会加载并正常工作。
  • 您介意在此处复制您的 .inputrc 内容吗?

标签: linux bash shell csh rc


【解决方案1】:

Readline 是程序可能使用的several 可能的“键盘输入处理前端”之一。程序也可能不使用任何内容(除了 libc 完成的通常的 stdio 处理)。

如前所述,.inputrc 被 readline 使用,所以它只会影响使用 readline 的程序。 Bash 就是这样一个程序,所以它会间接使用.inputrc,但它不是像.bashrc 这样的文件,而且语法完全不相关。 .inputrc 文件仅在启动时由程序加载(间接通过 readline 库)。来自the documentation

当一个使用 Readline 库的程序启动时,init 读取文件,并设置键绑定。

【讨论】:

    【解决方案2】:
     $ bind -f ~/.inputrc
    

    -f filename:从filename 读取键绑定。

     $ help bind
    

    注意:这是一个内置的 bash 命令,所以它只适用于bashsh。它不适用于kshcsh shell,对于tcsh 或csh shell,您需要使用bindkey 命令。如需更多帮助:bindkey

    【讨论】:

    • 当我执行$ bind 时,它说找不到命令。但是$ help bind 实际上似乎有说明。我很困惑。你知道默认情况下绑定二进制文件的位置吗?
    • bind 内置在 bash 中,运行 man bash
    • 您的操作系统版本或供应商是什么?
    • 你使用的是 bash shell 还是其他 shell?
    • 我在 Linux 上运行 c shell
    猜你喜欢
    • 1970-01-01
    • 2017-12-12
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2011-12-27
    • 1970-01-01
    • 2018-03-15
    相关资源
    最近更新 更多