14

我有一个 org 文件,其中包含许多 babel 源块,仅在更改代码时才需要重新执行。

如何防止组织在导出期间执行所有块?换句话说,将它们全部设置为仅手动执行?

我更喜欢单个全局选项,而不是必须单独编辑每个块。

4

4 回答 4

19

变量org-export-babel-evaluate,如果设置为nil,将阻止任何代码作为导出过程的一部分进行评估。这样,只会导出手动执行插入的结果。

您可以通过将以下注释行放在 org 文件的顶部将其和其他人定义为文件变量:

# -*- org-export-babel-evaluate: nil -*-

于 2015-05-06T20:29:14.793 回答
9

您可以将 设置cache为 yes(请参阅http://orgmode.org/manual/cache.html)。这也可以在文件中设置属性线以全局执行。 #+Property: header-args :cache yes只需确保C-c C-c在该行上激活该属性。

于 2015-04-29T19:49:58.467 回答
6

将变量 org-export-babel-evaluate 设置为 nil 将避免代码评估,但它也会导致所有源块头参数被忽略这意味着带有参数的代码块:exports none:exports results将在导出中结束。这让我措手不及。

另一种方法是在文件的基础上使用 header 参数:eval never-export,然后在重新运行源代码时删除该行:

#+PROPERTY: header-args :eval never-export

请参阅 org-babel-evaluate 的文档字符串:

在导出期间切换控制代码评估和标头处理。当设置为 nil 时,不会在导出过程中评估任何代码,并且不会遵守任何标头参数。希望避免在导出时评估代码的用户应使用标题参数“:eval never-export”。

于 2018-08-28T16:43:14.113 回答
3

放置以下内容后:

# -*- org-export-use-babel: nil;-*-

在文件的顶部,并执行抄送抄送,它对我不起作用。变量的值未相应设置。

但以下内容:

#+BIND: org-export-use-babel nil

使用 Cc Cc 按预期工作。

我在这里找到了答案:http: //joelmccracken.github.io/entries/org-mode-specifying-document-variables-and-keywords/

我正在使用的 emacs 26 中可能有一些变化。

于 2017-12-12T18:46:23.250 回答