Используйте ключевое слово :tangle
в исходном блоке (см. https://orgmode.org/manual/Extracting-Source-Code.html)
Пример:
#+begin_src emacs-lisp :tangle "init.el"
(defmacro add-hook! (hook &rest body)
"Nicer add-hooking that prevents writing lambdas explicitly.
Add a lambda containing BODY to hook HOOK."
(declare (indent 1))
`(add-hook ,hook
(lambda () ,@body)))
#+end_src
После выполнения M-x org-babel-tangle
, код блок экспортируется в "init.el"
Выше приведена часть моего файла init.org. В конце моего init.org у меня есть это:
* COMMENT Local Variables for auto-tangle :ARCHIVE:
# Local Variables:
# eval: (add-hook 'after-save-hook (lambda ()(org-babel-tangle)) nil t)
# End:
init.el
Это обновляет init.el автоматически после каждого сейфа моего init.org.