禁用Carbon Emacs滚动蜂鸣声

11

我一直在研究使用Carbon Emacs在我的Mac上,唯一的障碍是当你尝试滚动文档末尾时会听到令人烦恼的滚动嘟声。我在网上搜索了很久,但似乎找不到应该添加到我的 .emacs 文件中以停止滚动时发出嘟声的内容。 我不想完全关闭它,只想在滚动时停止。有任何想法吗?

5个回答

9
(setq visible-bell t)

这会让emacs闪烁而不是哔哔作响。

2
真的,但这会使一切都静音,而这正是OP想避免的。 不过这就是我使用的方式——视觉提示与听觉提示同样有用,而且在我戴耳机听音乐时不会干扰。无论如何,我仍然会向“任何人”推荐它。 - jmanning2k

7

借鉴自Emacs wiki的AlarmBell页面,以下为我的做法:

(defun my-bell-function ()
  (unless (memq this-command
        '(isearch-abort abort-recursive-edit exit-minibuffer
              keyboard-quit mwheel-scroll down up next-line previous-line
              backward-char forward-char))
    (ding)))
(setq ring-bell-function 'my-bell-function)

如果你不知道命令的名称,按下C-h k,然后输入你想要获取名称的键/操作。

3

唉,那样行不通。例如,下一行函数中有一个硬编码的“ding”。 - ShreevatsaR
嗯,你不能只是在你的.emacs文件中重新定义下一行函数吗? - Svante
你需要重新定义不仅是next-line和previous-line,还有scroll-up、scroll-down以及许多函数;其中许多函数都是在“C源代码”中定义的,其源代码并未随Carbon Emacs一起提供。如果我说错了,请有人纠正我。 - ShreevatsaR

3
在 Stephen Hassard 的回答和 Kipton Barros 的评论之间:
(setq ring-bell-function 'ignore)

看起来这是最简洁的方法,适用于emacs 24.x,并且回答了原始问题。


0

这似乎可以解决问题:

(setq ring-bell-function nil)

3
更正:将 nil 替换为 'ignore。这将禁用所有铃声响起。 - Kipton Barros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接