我在多台计算机上共享我的 Emacs 配置。其中一些我可以轻松地维护我自己的 emacs 副本,而在其他一些我没有那么奢侈。我看到以下消息:
'disabled-command-hook' 是一个过时的变量(从 Emacs 22.1 开始);使用“禁用命令功能”
这发生在启动时,因为我将我的配置设置为对任何尚未编译的文件进行字节编译。问题是,我还有一两个 Emacs 21 实例。我如何同时支持旧的和新的?我的 google-fu 不适合我。
我尝试使用这个宏:
(defmacro WhenEmacsOlderThan (major minor &rest body)
`(if (or (< emacs-major-version ,major) (and (= emacs-major-version ,major)
(< emacs-minor-version ,minor)))
(progn ,@body)
nil
)
)
使用中看起来像这样:
(WhenEmacsOlderThan 22 1
(setq disabled-command-hook nil)
)
但我仍然在较新的 Emacs 版本中看到有关过时变量的消息。我错过了什么?
我发现了其他类似的问题,但目标是隐藏消息。我想了解为什么我会看到该消息以及如何以跨版本兼容的方式避免该问题。
谢谢。