Я использую режим орг с режимом фонтана, чтобы написать сценарий.
Организация для организации и фонтан для форматирования сценария.
Вот код, который я использую для этой цели:
Настройки для работы с (фонтанными) исходными блоками в орг.
;; prevent org from messing with indentation of the source text.
(setq org-src-preserve-indentation t)
(setq org-edit-src-content-indentation 0)
;; open the buffer for editing fountain in another window.
(setq org-src-window-setup (quote reorganize-frame))
;; prevent a message in the edit buffer from being shown.
(setq org-edit-src-persistent-message nil)
;; save edits in the fountain buffer to the org buffer after x sec
(setq org-edit-src-auto-save-idle-delay 1)
Например :
Акт 1
** SQ 1
*** Сцена 1
Куча текста, связанного со сценой и тем, что делают персонажи, и всем, что мне нужно знать, но никогда не попадет в сценарий.
BEGIN_SRC фонтан
текст сценария
END_SRC
Теперь я Cc ', и он открывает выше в новом буфере, и я могу взять его оттуда.
Проблема с моими текущими настройками заключается в том, что они не позволяют мне увидеть текст сценария полностью.
У меня есть более 50 таких блоков, и я хотел бы добиться следующего:
Я хочу, чтобы org экспортировал все фонтанные блоки в определенный файл, скажем, фонтан-сценарий. Таким образом, у меня есть только один файл со сценарием.
Все изменения синхронизируются с файлом org. Если я что-то отредактирую в фонтане-сценарии, исходный блок в org должен обновить изменения и наоборот.
Для этого я вставил следующие свойства в свой файл org:
:PROPERTIES:
:file: "~/files/fountain-screenplay.fountain"
:cache: yes
:comments: yes
:tangle: yes
:results: silent
:END:
Когда я Cc Cc, он возвращается с ошибкой, говорящей, что не найдена функция выполнения org-babel.
И когда я Cc Cv t говорит, что 0 блоков запутались.
Мой подход неверен или я что-то упустил?
Изменить: я изменил свойства:
#+properties :file .fountain :cache yes and so on
и когда я Cc Cv t, он связывает исходные блоки с именем filename.fountain. Теперь часть синхронизации еще предстоит решить.
outshine.el
, кажется, что он идет противоположным путем (исходный файл с комментариями, которые можно просмотреть в буфере организации), но он может приблизиться к тому, что вы хотите. Отказ от ответственности: он никогда не пробовал сам (пока).org-babel-detangle
которая претендует на это (предоставит вам запутанные ссылки комментариями). Я никогда не мог заставить его работать.Ответы:
Одна широко известная опция, которая реализует двустороннюю двустороннюю связь между различными форматами документов (например, org иountain) в одном и том же файле, - это функция лентичного сервера, разработанная Phillip Lord. Его можно установить как лентичный пакет через репозиторий MELPA.
Существует скринкаст, демонстрирующий объединение режимов org-mode и lisp в одном файле с двумя разными редактируемыми представлениями одновременно. Изменение в одном делает изменения в другом. Некоторые первоначальные настройки могут потребоваться для соответствия форматам, которые вам нужны.
Это более богатая интеграция, более подходящая для редактирования, чем, скажем, односторонний вывод путаницы и распутывания через org-babel.
источник
Немного опоздал на вечеринку, но у меня было такое же желание синхронизировать запутанные блоки с их внешними файлами.
Для этого я могу порекомендовать org-tanglesync
Этот пакет ищет
:tangle <filename>
свойство в заголовке файла org и сравнивает содержимое блока с ним. Разница выполняется в фоновом режиме, а затем пользователю предлагается извлечь или отклонить внешние изменения.Я считаю, что это более интуитивно, чем
org-babel-detangle
потому, что для работы не требуется, чтобы внешний файл имел дополнительную магию org-babel, т. Е. Исходный файл отслеживает внешние экспортируемые блоки, а не наоборот.источник