如何仅在 bash tab-complete 中关闭蜂鸣声

She*_*hep 68 bash terminal autocomplete bell

我找了一些事情的提示音是有用的,所以我只是想将其关闭选项卡完成(我不问如何彻底关闭,这已经回答了在Serverfault一个不同的问题)。我也没有 root 访问权限,正在使用 RHEL5。

Nyk*_*kin 86

Readline 库有bell-style变量:

控制当 Readline 想要敲响终端铃时会发生什么。如果设置为“none”,Readline 永远不会响铃。如果设置为“可见”,Readline 会使用可见的铃铛(如果有)。如果设置为“audible”(默认值),Readline 会尝试响铃终端。

因此,您可以将以~/.inputrc下行放入您的文件中:

 set bell-style none
Run Code Online (Sandbox Code Playgroud)

接下来,运行bind -f ~/.inputrc一次以加载它。

  • 如果您希望此设置成为系统所有用户的默认设置,您可以使用 root 用户编辑 /etc/inputrc 配置文件。 (6认同)
  • 然后运行“bind -f ~/.inputrc”重新加载它。 (2认同)

vor*_*aq7 14

我不知道有什么方法可以禁用选项卡完成响铃bash(除了完全禁用响铃或将其更改为主观上更烦人的视觉响铃)。

您可以尝试set show-all-if-ambiguous on在您的~/.inputrc- 这使外壳程序在您点击时立即显示匹配的命令/项目列表,tab而不是等待您点击tab两次。
一个副作用是在显示候选匹配之前没有响铃。


wis*_*cky 9

如果您不想创建和维护单独的~/.inputrc文件,也可以将此行添加到~/.bashrc

bind 'set bell-style none'
Run Code Online (Sandbox Code Playgroud)

然后source ~/.bashrc重新加载它。

  • 这是唯一对我有用的解决方案(尽管“可见”选项不起作用)。即使禁用关键停止和默认蜂鸣声 Windows 声音也不起作用(在 ConEmu 中使用 WSL)。 (2认同)

Mar*_*ata 7

在 ~/.inputrc 中,存在以下可能性,但它对我没有任何作用。它只是敲响了警钟。这可能是 Cygwin bash 中的一个错误。

set bell-style visible
Run Code Online (Sandbox Code Playgroud)