emacs - 如何从组织模式代码块中提取代码?
问题描述
有没有一种简单的方法可以将 org 模式下的代码块转储到文件中?也许通过代码块附近的标记以某种方式命名它们?也许是出口什么的?
解决方案
在源代码块中使用: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。
推荐阅读
- c# - 无法翻译 LINQ 表达式,将对其进行评估
- python - 为什么在 Python 中实例化后无法访问此实例成员?
- sql - 如何将属性添加到 Laravel 模型集合?
- rust - 运行“rustup doc”时访问被拒绝
- c# - 在 C# 中正确使用 AddWithValue 到 Db 方法
- php - 数字、字母和的正则表达式:
- ms-access - 如何在 Azure 数据砖中使用 ucanaccess(ms 访问 jdbc 驱动程序)?
- ajax - 将道具值传递给axios中的url不起作用
- python - SqlAlchemy Continuum:未创建历史和事务表
- java - MediaRecorder 循环录制音频