ITPub博客

首页 > 自动化运维 > 应用服务器 > [20240806]vim关闭bell声音.txt

[20240806]vim关闭bell声音.txt

原创 应用服务器 作者:lfree 时间:2024-08-07 20:11:58 0 删除 编辑

[20240806]vim关闭bell声音.txt

--//今天在windows 10上使用vim 8.0,遇到一个奇怪的问题,我发现按<ESC>键,会从音箱发生响声,以前从来没有注意到这个情况,而不是
--//以前蜂鸣器的声音,可能是我不经常打开音箱的原因.而家里也是使用winows 7+vim 8.0的笔记本电脑,就从来没有出现这样的情况,为
--//什么呢?

--//我个人在工作中非常讨厌这类声响,非常影响工作情绪.
--//看了文档,涉及到声音在vim有几个参数belloff,errorbells,visualbell,t_vb
:set belloff? eb? vb? t_vb?
 belloff=
noerrorbells
novisualbell
  t_vb=^[|f

--//第1个参数为空,没有设置,应该排除,
--//第2个参数设置是noerrorbells,也可以排除.
--//第3参数设置的是novisualbell,也可以排除.
--//只能是最后1个参数

--//仔细查看:help visualbell

'visualbell' 'vb'    boolean    (default off)
            global
            {not in Vi}

Use visual bell instead of beeping.  The terminal code to display the
visual bell is given with 't_vb'.  When no beep or flash is wanted,
use ":set vb t_vb=".
Note: When the GUI starts, 't_vb' is reset to its default value.  You
might want to set it again in your |gvimrc|.
In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
for 20 msec.  If you want to use a different time, use "<Esc>|40f",
where 40 is the time in msec.
Does not work on the Amiga, you always get a screen flash.
Also see 'errorbells'.

--//执行:set vb t_vb?,显示:
t_vb=^[|f

--//执行如下:
set visualbell t_vb=

--//再次尝试按<ESC>键,不再发出烦人的声音.实际上还会出现一个奇怪的问题,按<ESC>键屏幕会出现闪烁,设置后,这个现象也会消失.将
--//以上设置写入vimrc.vim文件我以为问题可以解决,很奇怪我设置的不生效.t_vb没有变化.
:set t_vb
t_vb=^[|f

--//上网查询,链接https://vim.fandom.com/wiki/Disable_beeping,设置如下:
set visualbell t_vb=
autocmd GuiEnter * set visualbell t_vb=

--//执行gvim后:
:set belloff? eb? vb? t_vb?
 belloff=
noerrorbells
novisualbell
  t_vb=

--//但是按<ESC>键还是会从音箱发生响声.但是手工执行:set visualbell t_vb= 后,确实声音消失,不知道为什么.
--//仔细看上面的输出可以发现一个细节输出含有novisualbell.
--//在结尾加入set novisualbell问题解决.
set visualbell t_vb=
autocmd GuiEnter * set visualbell t_vb=
set novisualbell

:set belloff? eb? vb? t_vb?
  belloff=
noerrorbells
  visualbell
  t_vb=

--//只有这样才不会出现上面的情况.实际上脚本写入如下就可以解决以上问题.
autocmd GuiEnter * set visualbell t_vb=
set novisualbell

--//我又在linux下测试(虚拟机器),同样的设置发现问题再次出现:
--//设置如下:
set visualbell t_vb=
autocmd GuiEnter * set visualbell t_vb=

:set belloff? eb? vb? t_vb?
belloff=
noerrorbells
  visualbell
  t_vb=

--//总之,设置后结果如上,声音就不再出现.视乎vim与gvim两种不同.在linux下设置set visualbell t_vb=就可以了.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3024448/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969285