如何在Emacs中禁用初始化时的警告?

13
自从我安装了emacs24之后,我的一些配置文件中的微小不重要的部分就停止工作了。由于我真的不关心这个错误,它也不影响我,我只想让Emacs别在初始化警告时嘟囔,并且只打开scratch buffer(现在它会再打开一个带有一些错误内容的buffer)。
有没有一种方法可以做到这一点,而不必花费数小时来调试我不理解的lisp代码?
我真的不能发布配置文件,因为它非常非常大且混乱,但是这是我收到的警告:
"Warning (initialization): An error occurred while loading '/home/sofia/.emacs':
Symbol's function definition is void: plist-to-alist
To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the '--debug-init' option to view a complete error backtrace."
简而言之,我不想确保正常运行,我只想在打开emacs时看到一个buffer。

5
这并不是直接回答你的问题,但我认为这个答案解释了如何修复错误而不是忽略它。 - Carl Groner
4
将错误修复或移除而非忽略或掩盖,这是“+1”(即强烈推荐的)的做法。一名优秀的程序员应该为自己所使用的工具感到自豪。回溯(backtrace)的最高层应该能够直接指向你在“.emacs”文件中出错的那一行代码 - 如果你不想花时间解决问题,那么可以移除包含错误代码的表达式。 - rhashimoto
谢谢,这解决了这个特定的问题,但总的来说,是的,那不是答案。我想要摆脱那些警告,这经常发生,我真的不想每次都坐下来修复elisp代码。 - Sofia Bravo
2
你永远无法保证你现有的配置与新版本的Emacs完全兼容,因此如果你无法解决配置问题,那么升级Emacs就会变得很冒险。我强烈建议你回退到你的配置工作的Emacs版本,而不是使用损坏的配置运行。推迟升级直到你有时间解决问题。 - phils
没有人提到显而易见的问题-即,搜索源文件中的术语plist-to-alist,您将看到问题所在-包含该函数定义的库未加载,或该函数不再存在。卡尔·格罗纳(Carl Groner)上面的链接还提供了一个解决方案,可以自己创建缺失的函数。 - lawlist
1个回答

29

我并不是在说这是一个好主意(实际上我非常同意@Carl Groner和@rashimoto的观点,掩盖错误而不是修复它们通常是一个不好的想法™),但是如果你愿意冒险,可以尝试将以下内容添加到你的.emacs文件的顶部:

(setq warning-minimum-level :emergency)

这会告诉Emacs除了那些不及时处理就会严重影响Emacs操作的问题之外,不要对其他任何事情发出警告。

与此相反,默认值warning-minimum-level:warning,这将导致Emacs警告您关于并非固有错误但引起可能问题怀疑的数据或情况。

关于警告以及处理警告的选项的更多信息,请参见此处此处


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