如何在 Windows 上禁用 emacs 中的哔声

Posted

技术标签:

【中文标题】如何在 Windows 上禁用 emacs 中的哔声【英文标题】:How to disable the beep in emacs on Windows 【发布时间】:2012-05-19 16:48:57 【问题描述】:

您好,我是 Emacs 新手,我在我的 Windows 机器上下载了 GNU emacs。我刚刚完成了简短的教程,但我发现每当我点击文件的开头/结尾以及在许多其他情况下都会发出哔声,这让我有点不安。

我在网上搜索,发现有人说放这个

(setq visible-bell 1)

在我的 .emacs 文件中,但我不知道该怎么做。首先,我的 .emacs 文件在哪里,它是什么?还是有其他方法可以做到这一点?我的意思是在 emacs 窗口菜单中有 Options -> Customize Emacs 但我找不到设置的位置。我觉得在里面找东西有点困难,除非你已经知道它在哪里。

【问题讨论】:

【参考方案1】:

您有几个选项,其中一个不需要您知道文件在哪里;但是在适当的时候,您几乎肯定会想要对文件进行更改,所以让我们从那里开始吧。

首先,我的 .emacs 文件在哪里?它是什么?

您还可以选择该文件的名称。 ~/.emacs 是默认值,但也可以是 ~/.emacs.el~/.emacs.d/init.el。 (我个人更喜欢后者,以便将所有与 Emacs 相关的文件保存在同一个 .emacs.d 目录下,但我们将使用默认值,您以后可以随时重命名文件。)

首先,检查您是否有现有文件。

C-hv user-init-file RET

默认情况下,它会向您显示以/.emacs 结尾的文件路径(即使该文件不存在),但是(在您的情况下不太可能)它以/.emacs.el/.emacs.d/init.el 结尾那么这意味着您在该位置有一个现有的 init 文件。

使用以下适当的一项加载该文件:

C-xC-f ~/.emacs RET C-xC-f ~/.emacs.el RET C-xC-f ~/.emacs.d/init.el RET

或者,无论它在哪里,您都可以加载它:M-: (find-file user-init-file) RET

然后你可以简单地将那行代码添加到文件中:

(setq visible-bell 1)

保存文件:

C-xC-s

下次启动 Emacs 时,它将使用该设置。

您还可以通过在右括号后键入 C-xC-e 来立即评估设置。

既然您知道如何做到这一点,另一种方法是:

M-x customize-variable RET visible-bell RET 点击“切换”按钮开启设置。 单击“保存以供将来的会话”按钮将其保存到您的初始化文件中。

如果您随后查看您的 init 文件,您会发现它已添加到 (custom-set-variables ...) 部分。

至于你的 .emacs 文件是什么,它是一个个人的 Emacs Lisp (elisp) 代码库,在你启动 Emacs 时会自动加载和评估。所有 Emacs 配置和自定义都是用这种语言编写的(实际上大部分编辑器本身也是如此)。

您可以在内置手册中阅读有关 init 文件和自定义 Emacs 的更多信息,方法是键入:

M-: (info "(emacs) Customization") RET 要么 C-hig (emacs) Customization RET

您可能需要先学习如何使用信息阅读器。在*info* 缓冲区中,您可以键入 h 开始其教程,然后键入 d 以返回***页面(顶部有一些有用的注释)。

或者还有其他方法吗?我的意思是在 emacs 窗口菜单中有 Options -> Customize Emacs 但我找不到设置在哪里。

"Specific Option" -> "visible-bell" 是该方法的答案。但请注意,并非所有内容都可以通过这些菜单获得,因此这并不总是答案,而且很多人完全禁用了菜单栏,因为没有它就可以访问所有内容。 (我更倾向于建议通过浏览菜单来发现一些人们认为足够有用的选项,但请确保您不依赖它们。)

我觉得在里面找东西有点困难,除非你已经知道它在哪里。

在一定程度上确实如此,但 Emacs 的自文档方面意味着即使您不知道 在哪里 查找,您几乎总能找出您是否知道 怎么看。

诚然,即使这样做也有一定的学习曲线,但我建议尽可能多地了解 Emacs 的这一方面。这将使您开始:

http://emacswiki.org/emacs/SelfDocumentation

【讨论】:

这是一个如此彻底的答案。太感谢了。我学到的比我的问题所要求的要多得多。至于 .emacs 文件名和位置,我的位于 'c:/users/my_name/AppData/Roaming/.emacs'。我没有查看“~/AppData/Roaming/”,这就是我没有找到它的原因。同样,您的回答对我开始使用 emacs 有很大帮助。 这是我在 Emacs 标签上看到的最好的之一。如果任何 Emacs 新用户遇到这个答案,他/她会很激动。非常感谢菲尔斯。 刚开始使用 Emacs。十分感谢你的帮助!对于 Emacs 的新用户,visible-bell 不再是您必须更改的唯一变量,但该页面确实告诉您正确的去处:ring-bell-function 某些 Emacsen 会截断显示的值,因此您会看到类似 user-init-file is a variable defined in ‘lread.c’. Its value is "c:/users/m..." 的内容,这不是很有帮助。试试M-:user-init-fileRET看全名。 @devon 如果 Emacs 将字符串缩写为文件名,那么我认为某些地方配置错误。当然,默认情况下不应该发生这种情况!我倾向于弄清楚它为什么会发生,因为这肯定会是一种持续的刺激。【参考方案2】:

要完全关闭警报,请使用:

(setq ring-bell-function 'ignore)

在您的 .emacs 文件中,该文件位于您的 HOME 文件夹中

【讨论】:

我应该在 .emacs 文件的哪个位置添加这一行?在文件末尾? 没关系,但是我会把它放在文件的末尾。

以上是关于如何在 Windows 上禁用 emacs 中的哔声的主要内容,如果未能解决你的问题,请参考以下文章

禁用 Carbon Emacs 滚动提示音

如何在 Windows 平台上安装 Emacs 插件(很多时候是 .el 文件)?

如何在 emacs-term 中禁用自动换行?

在使用 emacsW32 的 windows 上关闭当前窗口 (x) 时,如何保持 emacs 服务器运行?

如何让emacs Zip-Archive模式在Windows上运行

Emacs:尝试超出文档末尾时禁用哔声