How to disable Vim bells sounds?

VimError Suppression

Vim Problem Overview


I am trying to disable the error bells on vim, both visual and audio. However I cannot get them to stay off.

I have the following in my vimrc:

" Disable annoying beeping
set noerrorbells
set vb t_vb=

That doesn't work, I figured some plugin or another setting was resetting it so I added it again to the end of my vimrc, still no luck.

The only way I can get it to turn off is if I manually call set vb t_vb= after everything has loaded. I guess I could emulate this by adding a script to the plugin/after folder but I am trying to avoid that as it means it's another thing I have to set up whenever I switch to another machine.

You can see my full vimrc here: https://github.com/lerp/dotfiles/blob/master/vimrc

Vim Solutions


Solution 1 - Vim

Try to use the following line in your .vimrc, .gvimrc files:

set belloff=all

Solution 2 - Vim

Assuming you have that problem in GVim, adding the following line

autocmd GUIEnter * set vb t_vb=

in your if has("gui_running") conditional block should help.

From :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.

Solution 3 - Vim

For me with gVim it works if I put

set noerrorbells
set vb t_vb=

in ~/.gvimrc, not ~/.vimrc.

Solution 4 - Vim

To disable visual bell in Visual Studio 2019 with VsVim extension:

VsVim detects the presence of _vimrc, so add the following to it:

C:\Users\YourName\_vimrc

set vb t_vb=

Setting other options like errorbells or beloff had no effect in VsVim.

Solution 5 - Vim

After trying all the options mentioned (that haven't worked for me), I figured out the following solution and that worked for me (Windows). The beep sound is related to the git bash terminal settings.

Follow these steps:

  1. Right-click on the terminal/git bash or whatever you are using.
  2. Click on options.
  3. Select Terminal.
  4. From Bell drop-down select "no beep".

Solution 6 - Vim

I tried several times with different configurations but none worked. It seems that gVim resets the visual bell when the GUI starts. The only way it works for me is this snippet at the end of your .vimrc (or _vimrc if you are using Windows):

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLerpView Question on Stackoverflow
Solution 1 - VimMarkView Answer on Stackoverflow
Solution 2 - VimromainlView Answer on Stackoverflow
Solution 3 - Vimpozitron57View Answer on Stackoverflow
Solution 4 - VimrbentoView Answer on Stackoverflow
Solution 5 - Vimprakhar srivastavaView Answer on Stackoverflow
Solution 6 - VimadelriosantiagoView Answer on Stackoverflow