gpt4 book ai didi

org-mode - 如何为空输出自动抑制 `#+RESULTS`?

转载 作者:行者123 更新时间:2023-12-04 17:47:51 24 4
gpt4 key购买 nike

在以下 org-mode 源代码片段中,没有生成任何结果:

#+BEGIN_SRC ipython :session
import numpy as np
#+END_SRC

但是,在执行时 #+RESULTS: 被添加到文档中。我如何配置 org-mode/babel 以仅在有内容要显示时插入结果?

我知道我可以使用 :results silent 禁用输出,但我不想根据是否生成结果来指定不同的标志。

最佳答案

使用 ob-ipython对于 Org 9,如果源 block 配置为返回值(即默认 header 指定 :results value),我可以使用以下 hack:

; don't label empty outputs, exclude empty result blocks
(advice-add 'ob-ipython--process-response :filter-return
(λ (contents)
(if (string-match-p "\\`# Out\[[0-9]+\]:\n\\'" contents)
"" contents)))
(advice-add 'org-babel-insert-result :filter-args
(λ (args)
(let ((result (car args))
(result-params (cadr args))
(others (cddr args)))
(apply 'list
result
(if (string-empty-p result) '("silent") result-params)
others))))

第一个建议在输出中没有其他内容时剥离 ob-ipython 插入的输出标签(使结果为空),而第二个建议有效地应用 :results silent 当结果为空时。这些部分可以根据您的用例以不同方式排列。

关于org-mode - 如何为空输出自动抑制 `#+RESULTS`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47585133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com