首页 > 解决方案 > 如何从组织模式代码块中提取代码?

问题描述

有没有一种简单的方法可以将 org 模式下的代码块转储到文件中?也许通过代码块附近的标记以某种方式命名它们?也许是出口什么的?

标签: emacs

解决方案


在源代码块中使用: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.org 的每个安全之后自动更新 init.el。


推荐阅读