2015-10-02 10 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-hook или prog-mode-hook.

emacs -Q Подтвердите, что это не по умолчанию поведения, а затем вы можете установить о выследить виновник (я бы просто M-x rgrep для require-final-newline в ваших Elisp файлов).

+0

После grepping виновником является, вероятно, 'editorconfig' (он не собирает мой файл конфигурации, но, похоже, устанавливает значения по умолчанию). Что вы имели в виду под названием 'emacs -Q'? Командная строка ? Если да, я нахожусь на osx, и запуск emacs через командную строку, похоже, не работает из коробки. – nha

+0

Да, это означает запуск 'emacs -Q' в командной строке. Возможно, каталог для исполняемого файла 'emacs' не находится в переменной среды' PATH' вашей оболочки? Если вы знаете, где он живет, вы можете просто запустить '/ path/to/emacs -Q' для соответствующего пути. (Если вы считаете, что нашли виновника конфигурации, тем не менее, вы можете, вероятно, проверить это, удалив/комментируя соответствующие строки и запуская Emacs в обычном режиме.) – phils

+0

Да, вероятно, это 'editorconfig', поэтому я принял ваш ответ. Мне нужно будет увидеть, могу ли я переопределить его поведение, но это был бы другой вопрос, если я его не найду. То же самое для emacs из CLI. Благодаря ! – nha