【发布时间】:2013-08-12 22:08:41
【问题描述】:
我有一个关于 Emacs Lisp 的问题。 setq 和 setq-default 有什么区别?
教程说setq在本地缓冲区生效,而setq-default影响所有缓冲区。
例如,如果我在init.el中写了(setq a-var a-vars-value),我发现在启动Emacs并打开一个新的缓冲区后, a-var 也在那里,其值为 a-vars-value。我以为它不应该在那里。 setq 和 setq-default 之间似乎没有区别。
我的理解有问题吗?
例如:
我在 init.el 文件中写了 (setq hello 123),并在 shell 中运行 emacs abuffer,然后我输入“hello Cx Ce”,它显示“123”。当我在所有新缓冲区中运行它时也会发生同样的情况。
我在 init.el 文件中写了 (setq tab-width 4)。当我运行 tab-width C-x C-e 时,它显示“8”(当前模式为“文本”)。但是,当我使用 (setq-default tab-width 4) 时,它会显示“4”。我无法解释这种现象。
【问题讨论】: