答案1
例如,你在终端中输入的输入将由一个名为雷德莱恩。Readline 有几十个变量可以设置以自定义其行为。其中一个变量是。更改或另一个 Readline 变量show-all-if-ambiguous
的值的语法是show-all-if-ambiguous
set show-all-if-ambiguous on
或者
set show-all-if-ambiguous off
分别。这些设置将进入.inputrc
用户主目录中名为 (请注意开头的点)的配置文件。
看起来 Readline 设置被放在了不该放的地方,这会给事情带来麻烦。可能是您自己把它放在了某个地方,或者您使用的程序/工具/脚本/... 有错误或安装不正确。
如果你可以让终端表现得足够好,那么在你的主目录中搜索“set show-all-if-ambiguous”可能会让你找到“罪魁祸首”:
grep -rIl 'set show-all-if-ambiguous' /home/yourusername
显然,您需要用您的用户名替换“yourusername”;)
答案2
我发现了问题,在 .inputrc 文件中有以下几行:
$include /etc/inputrc
set completion-ignore-case On
bind TAB:menu-complete
bind "set show-all-if-ambiguous on
我以前不知道为什么这个方法有效,但显然,正如这篇文章所述:我在命令行中无法输入“b”,无法识别单词“bind”。删除绑定即可解决问题。
非常感谢 Henning Kokerbeck 告诉我问题出在 .inputrc 文件上!