【问题标题】:Warning when I revert from desktop session. Emacs当我从桌面会话恢复时发出警告。 Emacs
【发布时间】:2012-05-01 04:04:40
【问题描述】:

昨天我从 EmacsWiki 找到了桌面模式,然后我为我的 Emacs 24 配置了它:

;; Desktop
(require 'desktop)

;; save the desktop file automatically if it already exists
(desktop-save-mode 1)

;; use only one desktop
(setq desktop-path '("~/.emacs.d/tmp/"))
(setq desktop-dirname "~/.emacs.d/tmp/")
(setq desktop-base-file-name "desktop.cache")

但是当我重新启动 Emacs 时,我在 *Compile-Log* 缓冲区中收到警告:

Warning: ad-Orig-kill-region called with 3 arguments, but accepts only 2

其他人在使用桌面时遇到此警告?或者,还有比桌面模式更好的附加组件吗?

【问题讨论】:

    标签: emacs advising-functions defadvice


    【解决方案1】:

    ad-Orig- 前缀告诉您建议使用函数kill-region。可能该建议引起了问题?

    C-hf kill-region RET 应该告诉你建议的名称;很有可能它是你自己的配置中的东西,所以我会先在那里寻找它。

    查看禁用建议是否可以解决问题。

    我确实注意到 Emacs 24 中的这个函数有点奇怪; kill-region 的源代码显然采用了可选的第三个参数,但 *Help* 屏幕只提到了两个必需的参数。

    我检查了 Emacs 23,那里的帮助提到了所有三个参数。

    也许 Emacs 24 中有一个错误导致帮助输出中的差异以及您看到的错误?

    【讨论】:

    • 你是对的,这似乎是 Emacs 24 中的一个错误。我复制了一个桌面会话文件,然后重新启动 Emacs,Emacs24 记录了警告,而 Emacs23 没有。但我没有找到禁用的建议。
    • 我与 ErgoEmacs 键绑定包有相同的行为,其中包括带有 kill-region 的“before-advice slick-copy”。
    • 评估(ad-deactivate 'kill-region)(检查C-h f kill-region RET应确认不再建议),然后查看错误是否仍然存在。
    • 太棒了!!不再警告,非常感谢。
    • 不客气,但请注意,停用建议仅应被视为临时解决方法,您应该进一步跟进。定义该建议的库需要更新以与 Emacs 24 兼容,或者 Emacs 本身确实存在错误。您可能应该首先联系图书馆作者。您可以通过M-x report-emacs-bug 报告 Emacs 错误。
    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 2019-09-25
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2023-04-02
    相关资源
    最近更新 更多