我没主意了——当弹出对话框打开时,我的 emacs 崩溃了。x-popup-dialog 函数可能是罪魁祸首但我发现没有解决办法。我的 Emacs 版本是 23.1.1 。不幸的是,emacs 的某些功能调用了它(例如,customize 会询问是否应保存更改),这会导致崩溃。
有人知道如何修复或禁用它吗?
答案1
这是一个快速的 elisp 位,它将完全为您禁用图形对话框:
(defadvice yes-or-no-p (around prevent-dialog activate)
"Prevent yes-or-no-p from activating a dialog"
(let ((use-dialog-box nil))
ad-do-it))
(defadvice y-or-n-p (around prevent-dialog-yorn activate)
"Prevent y-or-n-p from activating a dialog"
(let ((use-dialog-box nil))
ad-do-it))
将其添加到您的 .emacs 中,它将禁用 emacs 使用的两种是或否提示形式的图形对话框。
答案2
哇。我以前从未注意到这一点,但x-popup-dialog
对我来说似乎也是个问题。至少示例对话框对我来说崩溃了。如何自定义以调出对话框?我无法重现它。
一般规则是:如果您从键盘执行此操作,则不会使用对话框。例如,使用C-x k
而不是鼠标来关闭缓冲区,您将不会得到任何对话框。另一种更严厉的方法是设置use-dialog-box
为nil
(尽管如果直接调用,这不会停止x-popup-dialog
工作,因此可能无法解决问题)。要解决这个问题,您可能必须建议x-popup-dialog
,使用例如重新实现它completing-read
并且永远不要调用ad-do-it
。或者您可以修复错误。我不确定哪种方法更容易 :-)