如何在 Emacs 中为变量创建 alias?

如题,在 Emacs 24 之前的 last-command-char 在 25 变成了 last-command-event,导致 teco.el 无法在 25 以后的版本正常使用。 我想给 last-command-char创建一个 alias 到 last-command-event,但是 defalias 肯定不对,不知道各位有没有什么好办法。 主要是不想改太多源代码(源代码是02年的,那时候甚至 backquote 都没成为 Emacs Lisp 标准,也没用defalias,而是用fset)。 当然如果必须要改也没关系,

答案是 defvaralias,如果是一个废弃的变量,可以用 define-obsolete-variable-alias(如果你不知道自己在干什么,不要用这个宏)。 用例:

(defvaralias 'last-command-char 'last-command-event)
1 个赞

最好的方式是给 teco.el 提交 patch

这玩意是host在EmacsWiki上的(本体似乎在GH上)。 主要是我现在正在魔改,而且也没做好背锅的准备。

C-u C-h n 24.3 (view-emacs-news) 说 last-command-char 在 24.3 被删掉,之前它就是 obsolete 状态。并且,last-command-event 不是一个很新的变量,至少从 Emacs 22.1 中就有了(我用 Mac 自动的 Emacs 看了下)。

2 个赞

好,我可以放心改了。