如何关闭bash嘟嘟声和vi/vim嘟嘟声

转载于:http://blog.csdn.net/rhel_admin/article/details/34115459

 


 

自从安装了LINUX(我的是CentOS 5.7)以后,每当按退格键(BackSpace)删除输入的字符,如果没有字符还按键,电脑就会发出嘟嘟声,用vi、less和man编辑的时候,按方向键,如果到了该方向的末端还继续按方向键,也会发出该报警声。我 深受其害,后终于找到解决的方法。

        网上有介绍:vi /etc/inputrc,然后去掉set bell-style none前的注释,修改完,你需要退出当前的shell,再次登录才能生效。这个时候,你可以用按下crtl-g来测试一下。但这样的 做法只能只能命令行下的错误报警声,而用vi、less和man编辑的时候还是会发出嘟嘟的报警声。

         其实这个问题根源并不是声卡发出的,而是主板的蜂鸣器,所以不能通过关闭音箱来解决。该统响铃是因为红帽企业LINUX默认安装并加载了pcspkr内核模块,要关闭系统响铃可以使用root命令执行下面命令来删除pcspkr模块:

         rmmod pcspkr
         如果你想重新打开它,可以使用下面的命令:
         modprobe pcspkr

         当然,上面的方法只是临时起效,重新启动后beep依旧,彻底关掉beep的方法如下:

         如果用的是bash作shell,在~/.bashrc的最后添加
         setterm -blength 0
         xset -b

         这个方法是永久生效,但不是针对所有用户生效,因为是更改自己家目录的~/.bashrc文件,这对于那些木有root权限的用户可以这样设置,那有木有要永久生效又要针对所有用户的方法呢?答案是有地,前提是必须是以root用户登录,然后请按下面方法进行操作:

         在命令行下执行:echo "rmmod pcspkr" >> /etc/rc.d/rc.local

         这条命令的意思是在/etc/rc.d/rc.local脚本中追加一,内容为:rmmod pcspkr。这样做的目的是让系统每次在开机的时候删除pcspkr内核模块,而rc.local一般不管你在3的启动模式还是5的启动模式下,这个服务脚本都会执行,你把这个pcspkr内核模块删除了,那不管你是在什么模式,以什么用户登录,自然就无法加载,也就不会再发出那烦人的嘟嘟嘟的报警声了,让我们用LINUX的用户用的舒适^_^!

 


 

 

如果rmmod pcspkr 无法移除;那么可以如下修改vi配置文件关闭vi/vim的嘟嘟声:

 


 

可以在 vi/vim 中使用
    :set noeb
    命令(其中 noeb 是 noerrorbells 的缩写),这样当错误发生的时候将不会发出 bi 的一声。如果想要在出错的时候有一些提示,可以使用
    
:set vb
    命令(其中 vb 是 visualbell 的缩写),代替 bell 的将是屏幕的闪烁。

    这样也许已经足够了,但是当我们彻夜编程序的时候,尤其是在跟他人同住(比如学生宿舍)的时候这样的闪烁也会影响别人。这时候可以使用
    :set vb t_vb=
    命令,这下 vi 的出错发声就彻底被禁止了。(跟上面的 set noeb 效果相同,但是通过设置 t_vb 的值还可以有其他表现,具体参看 vi 的帮助)
    上面这些命令还可以写在 $你的用户名/.vimrc 里面,就可以免去每次手工输入命令了。
    ubuntu的在/etc/vim/下的vimrc设置。

    更详细的说明可在 vi/vim 中使用
    :help vb
    命令查看

 

 


 

posted @ 2017-10-25 15:30  雨城1  阅读(1089)  评论(0编辑  收藏  举报