在 Emacs 中恢复到全局缓冲寄存器

In Emacs revert to global buffer registers

我将 Emacs 26.3 与 Spacemacs 0.300 一起使用,寄存器不会在缓冲区之间交叉(全局寄存器)。根据我在 EmacsWiki 上阅读的内容,默认情况下这应该是全局的。我的显然不是,我找不到它被设置为本地的任何地方,但它的行为是这样的。然而,尽管如此:

(make-variable-buffer-local 'register-alist)

使变量成为缓冲区的局部变量,我找不到如何使其恢复为全局变量,没有 make-variable-global 函数。

希望有人有建议,插入一个我刚刚保存的寄存器并告诉我那里什么都没有,这很令人沮丧!

不能创建一个声明为始终是缓冲区局部变量的全局变量。

这就是为什么这个锤子相对不常用的原因 - 当你知道变量应该总是缓冲区本地时。

相反,您通常只需将 setq-localsetmake-local-variable 一起使用,它们仅为给定的缓冲区分配缓冲区本地值。然后没有什么可以阻止其他缓冲区 not 具有任何缓冲区本地值。

您当然可以使用 makunbound 来实际上从未绑定的变量开始。但是,对于已经声明变量 始终是缓冲区本地 并且您希望它 not 具有某些缓冲区中的缓冲区局部值。