如何从 org-mode 代码块中提取代码?
How can I extracting code from org-mode code blocks?
有没有一种简单的方法可以将 org-mode 中的代码块转储到文件中?也许通过代码块附近的标记以某种方式命名它们?也许出口什么的?
在源代码块中使用 :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。
有没有一种简单的方法可以将 org-mode 中的代码块转储到文件中?也许通过代码块附近的标记以某种方式命名它们?也许出口什么的?
在源代码块中使用 :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。