如何从组织模式代码块中提取代码?

时间:2020-02-07 16:18:40

标签: emacs

是否有一种简单的方法可以将组织模式下的代码块转储到文件中?以某种方式通过代码块附近的标记命名它们?也许是出口之类的东西?

1 个答案:

答案 0 :(得分:1)

在源代码块中使用: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。