Установка локальной файловой переменной в org-mode Emacs

В конкретном файле org-mode я не хочу, чтобы теги были унаследованы. Я думал, что положить -*- org-use-tag-inheritance: nil для первой строки сделает трюк, но это, похоже, не работает. Если вы не выполняете инструкцию setq вручную, как это сделать?

Ответ 1

В комментарии к заголовку отсутствует комментарий -*-.

Попробуйте следующее:

# -*- org-use-tag-inheritance: nil; -*-

n.b. Легко проверить, были ли локальные переменные действительно заданы так, как вы ожидали, - просто используйте C-h v VAR для рассматриваемого VAR, а Emacs сообщает вам, имеет ли он локальное значение буфера.

Ответ 2

Я предпочитаю переменные in-buffer lisp в конце файла, например:

* Local variables
# local variables:
# org-attach-directory: "./data"
# org-id-method: uuid
# end:

Ответ 3

Другой альтернативой является раздел Local Variables с атрибутом :noexport: в конце файла orgmode:

* Local Variables :noexport:
Local Variables:
org-use-tag-inheritance: nil
End:

Преимущество этого метода заключается в том, что локальные переменные не являются частью последнего регулярного раздела документа orgmode, а логически отделены от остальной части документа специальным разделом.