如何禁用 Vim 铃声?

Posted

技术标签:

【中文标题】如何禁用 Vim 铃声?【英文标题】:How to disable Vim bells sounds? 【发布时间】:2013-09-06 12:21:43 【问题描述】:

我正在尝试禁用 vim 上的错误铃声,包括视觉和音频。但是我不能让他们离开。

我的vimrc 中有以下内容:

" Disable annoying beeping
set noerrorbells
set vb t_vb=

这不起作用,我认为某些插件或其他设置正在重置它,所以我再次将其添加到我的 vimrc 的末尾,仍然没有运气。

我可以让它关闭的唯一方法是在所有内容加载后手动调用set vb t_vb=。我想我可以通过在plugin/after 文件夹中添加一个脚本来模拟这一点,但我试图避免这种情况,因为这意味着每当我切换到另一台机器时,我都必须设置它。

你可以在这里看到我完整的vimrc:https://github.com/lerp/dotfiles/blob/master/vimrc

【问题讨论】:

这声音太烦人了。为什么默认开启??有没有人可以改变这一点??? @Soren - 声音取决于您的终端。过去,大多数航站楼的候机楼铃声都是无害的。请记住,当 vi 启动时,我们使用了 VT100 和 ADM3 等硬件终端。 (现在你可以说“OK Boomer”了。) 【参考方案1】:

假设你在 GVim 中遇到这个问题,添加以下行

autocmd GUIEnter * set vb t_vb=

在您的 if has("gui_running") 条件块中应该会有所帮助。

来自:help 'visualbell'

Note: When the GUI starts, 't_vb' is reset to its default value.
You might want to set it again in your gvimrc.

【讨论】:

啊,我在阅读帮助文件时一定跳过了那行,我不明白为什么需要重置它,这有点令人讨厌。感谢autocmd Here 是提到它的 vim 文档的链接【参考方案2】:

我尝试了几次不同的配置,但都没有成功。似乎 gVim 在 GUI 启动时重置了可视铃。对我有用的唯一方法是在.vimrc(或_vimrc,如果您使用的是Windows)末尾的这个sn-p:

set visualbell t_vb=
if has("autocmd") && has("gui")
    au GUIEnter * set t_vb=
endif

【讨论】:

【参考方案3】:

对我来说,如果我把 gVim 放

set noerrorbells
set vb t_vb=

~/.gvimrc,而不是~/.vimrc

【讨论】:

【参考方案4】:

尝试在您的 .vimrc、.gvimrc 文件中使用以下行:

set belloff=all

【讨论】:

谢谢 - 其他答案适用于禁用可视铃,但这是为我禁用音频铃的设置。 适用于 vim-gtk3 8.0。 在使用安装了版本 8 的 sudo apt install vim 更新默认版本的 vim 后,这适用于 Ubuntu 16LTS 在插入模式下按最后一行的向下箭头时仍然会发出哔哔声【参考方案5】:

在尝试了所有提到的选项(对我不起作用)之后,我想出了以下解决方案并且对我有用(Windows)。 哔声与 git bash 终端设置有关。

按照以下步骤操作:

    右键单击终端/git bash 或您正在使用的任何内容。 点击选项。 选择终端。 从 Bell 下拉菜单中选择 “无哔”

【讨论】:

另外,您可以将哔声变为无害的声音。【参考方案6】:

使用 VsVim 扩展在 Visual Studio 2019 中禁用可视铃:

VsVim 检测到_vimrc 的存在,所以添加以下内容:

C:\Users\YourName\_vimrc

set vb t_vb=

设置其他 options 像 errorbellsbeloff 在 VsVim 中无效。

【讨论】:

我在 pycharm 中安装了 vim 扩展,这个解决方案奏效了!

以上是关于如何禁用 Vim 铃声?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 Vim 的 HTML 错误突出显示?

关于 vim 折叠的困惑 - 如何禁用?

如何在 vim 中禁用 linting(不,它不是 ALE)

如何在 vim 中禁用内置命令

如何使用 vim-latex 在 vi​​m 中禁用代码折叠?

如何禁用vim粘贴到/从系统剪贴板?