按一次“b”键时,终端中会出现“show-all-if-amset”垃圾邮件

按一次“b”键时,终端中会出现“show-all-if-amset”垃圾邮件

我是 ubuntu 新手,最近当我尝试在终端中执行命令并按下“b”键时,它输入“set”,然后开始发送垃圾邮件“show-all-if-amset”。

在此处输入图片描述

我该如何解决这个问题?

编辑:再看一遍,它只是输入“set show-all-if-am”,但仍然不知道它是什么意思......

编辑 2:这也发生在可视化代码终端中。

编辑3:这似乎是 bash 的问题,dash 或 sh 不会发生同样的问题。

答案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 文件上!

相关内容