Emacs - require-final-newline 本地值覆盖全局值

Emacs - require-final-newline local value overrides global value

我想将每个缓冲区的 require-final-newline 设置为 nil。 在我的配置文件中,我有:

(setq require-final-newline nil)
(setq-default require-final-newline nil)

似乎正确设置了全局值。但是在我打开的每个缓冲区中,本地值仍然是 t。使用 describe-variable,我得到:

require-final-newline is a variable defined in `files.el'.
Its value is t
Original value was nil
Local in buffer myfile.js; global value is nil

files.el/usr/local/Cellar/emacs/24.5/share/emacs/24.5/lisp/里面,估计不应该修改。 如何将此本地值设置为 nil

首先,有一些模式强制设置require-final-newline,因为这些文件需要一个最后的换行符。但是,我不认为 js-mode 是其中之一。

可能是您有一些自定义配置导致了这种情况,可能是通过 js-mode-hookprog-mode-hook.

设置的

通过 emacs -Q 确认这不是默认行为,然后您可以着手追踪罪魁祸首(我会在您的 elisp 文件中 M-x rgrep 寻找 require-final-newline)。