Запретить режиму проглатывания локальные переменные файла

12

Иногда удобно определить локальные переменные файла с комментариями, такими как следующие, которые должны быть в конце файла.

# Local Variables:
# fill-column: 80
# End:

Однако в буферах режима org эти комментарии считаются «внутри» самого последнего заголовка. Например, в следующем буфере комментарии будут скрыты всякий раз, когда поддеревья Cили Bскрыты.

* A
* B
** C

# Local Variables:
# fill-column: 80
# End:

Я действительно не против этого сокрытия.
Реальная проблема заключается в том, что комментарии будут переноситься, когда я перемещаю Cподдерево в другое место. Например, если я позвоню org-refileна C, или если я переместить его вокруг с org-metaup(и любит), комментарии перемещаются вместе с поддерева, а затем они , очевидно , перестают работать.

Есть ли способ сказать, org-modeчтобы прекратить делать это?

Malabarba
источник

Ответы:

11

Основываясь на быстром просмотре документации по синтаксису Org , я не думаю, что есть встроенный способ сделать это.

Одним из возможных путей решения этой проблемы является добавление заголовка верхнего уровня, такого как

* File-local variables

над разделом локальных переменных и пометьте его :noexport:. Конечно, тег необходим, только если вы планируете экспортировать родительский документ.


Если вы хотите посмотреть на реализацию пользовательского решения, глядя на то, как org-modeиспользование org-list-empty-line-terminates-plain-listsпеременной может быть полезным. Как следует из названия, когда для этой переменной задано ненулевое nilзначение, достаточно одной пустой строки, чтобы завершить простой список, поэтому можно получить нечто подобное, работающее для поддеревьев.

itsjeyd
источник
1
Я помещал * The End(или ;;;* The Endили подобное) в конец моих буферов режима Outline. Приятно знать о :noexport:режиме Org.
Жиль "ТАК - перестань быть злым"
7
* COMMENT Local Variablesу меня тоже работает.
rvf0068
Я бы порекомендовал использовать COMMENT, как предложено @ rvf0068. Таким образом, весь заголовок с его содержанием рассматривается как настоящий комментарий.
Quarky
8

Я держу заголовок верхнего уровня в конце моих файлов Org * Configuration.

Я гарантирую, что это помечено :NOEXPORT:ARCHIVE:

При этом он не экспортируется (благодаря :noexport:тегу) и, кроме того, контент не раскрывается при глобальном цикле (благодаря :ARCHIVE:тегу).

Я также поставил различные варианты конфигурации Org соотношения ( #+TITLE:, #+AUTHOR, #+OPTIONSи т.д.) под этим заголовком , чтобы они не занимают визуальное пространство , если я не хочу , чтобы редактировать их.

Джонатан Лич-Пепин
источник
5

Я случайно избежал этой проблемы, поскольку всегда использую сноску в своих документах. Doing C-c C-x fвставит сноску, и это автоматически создаст * Footnotesраздел в конце буфера.

Это специальный буфер, и он никогда не экспортируется как раздел в режиме org. Таким образом, вам никогда не придется перемещать этот раздел в иерархии.

Даже если вы не используете сноски, не помешает сохранить пустой * Footnotesраздел в конце, так как он никогда не будет экспортироваться как раздел.

Вот что я бы сделал:

  • Делать C-c C-x f
  • Дайте сноске какой-нибудь текст типа «Это фиктивная сноска».
  • Удалите автоматически созданную ссылку [fn:1]из основной области (не в разделе «Сноски»).

Я предложил сделать это, так как не уверен, обнаружит ли org-mode наличие действительных описаний сносок в разделе «Сноски», чтобы считать его специальным разделом.

Каушал Моди
источник