2015-10-02 39 views
1

我想將每個緩衝區的require-final-newline設置爲nil。 在我的配置文件,我有:Emacs - require-final-newline本地值覆蓋全局值

(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

回答

2

首先,根據需要的最終換行符強制設置require-final-newline的模式。但我不相信js-mode就是其中之一。

大概你有一些自定義配置造成這個,也許通過設置js-mode-hookprog-mode-hook

emacs -Q確認這不是默認行爲,然後您可以設置追蹤罪魁禍首(我只需M-x rgrep對於您的elisp文件中的require-final-newline)。

+0

grepping之後,罪魁禍首可能是'editorconfig'(它不是拿起我的配置文件,但似乎設置了默認值)。 'emacs -Q'是什麼意思?命令行 ?如果是的話,我在osx上,通過命令行啓動emacs似乎不太可行。 – nha

+0

是的,這意味着在命令行上運行'emacs -Q'。也許'emacs'可執行文件的目錄不在你的shell的'PATH'環境變量中?如果你知道它的位置,你可以運行'/ path/to/emacs -Q'來獲得適當的路徑。 (如果你認爲你已經找到了配置元兇,那麼你可以想象通過刪除/評論相關行並正常啓動Emacs來測試) – phils

+0

是的,它可能是'editorconfig',所以我接受了你的答案。我將不得不看看我是否可以重寫它的行爲,但如果我沒有找到它,那將是另一個問題。對於CLI中的emacs也是如此。謝謝 ! – nha