Буферно-локальные переменные с Emacs и Sweave - PullRequest
2 голосов
/ 19 января 2010

Я использую Emacs 23.1 с ESS 5.4 для редактирования файла Sweave.Я хотел бы отключить стандартное поведение отступа AUCTeX в буфере (чтобы избежать неприятностей с кусками кода, содержащимися в подробных списках), поэтому в верхней части файла у меня есть % -*- LaTeX-indent-level: 0; LaTeX-item-indent: 0; -*-.Когда я открываю буфер и запускаю C-h v LaTeX-indent-level, я получаю то, что хотел:

LaTeX-indent-level is a variable defined in `latex.el'.
Its value is 0
Local in buffer test.Rnw; global value is 2

  This variable is a file local variable.

Однако после редактирования фрагмента кода он возвращается к поведению по умолчанию.C-h v LaTeX-indent-level теперь дает:

LaTeX-indent-level is a variable defined in `latex.el'.
Its value is 2

Я попробовал исправление, предложенное в FAQ по режиму noweb , в котором предлагается добавить

(add-hook 'noweb-select-mode-hook
              '(lambda () (hack-local-variables-prop-line)))

в мой .emacs.Описанное выше поведение сохранялось, когда я делал это.

Есть ли способ заставить локальные переменные буфера работать в этой ситуации?Я бы предпочел не менять мои .emacs для установки LaTeX-indent-level на 0 во всех буферах Sweave / noweb.

1 Ответ

0 голосов
/ 02 августа 2010

Я не проверял это, но попробуйте следующее:

(add-hook 'noweb-select-mode-hook
              '(lambda () (hack-local-variables)))

Возможно, hack-local-variable-prop-line был изменен, чтобы просто анализировать значения, а не устанавливать их.

...