如何在组织模式代码块中指定默认标头参数


19

我想将默认标头参数设置为org文件中的代码块,如下所示:

#+PROPERTY: header-args  :session *my_python_session*
#+PROPERTY: header-args  :results silent
#+PROPERTY: header-args  :tangle yes

我的代码块如下所示:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

但是,当我org-babel-tangle从该缓冲区调用时,我从filename.org获得了纠结的0代码块。当我添加:tangle yes到该#+BEGIN_SRC行的末尾时,调用时将导出代码块org-babel-tangle

我希望不需要:tangle yes在每个代码块上进行设置。我究竟做错了什么?

Answers:


24

您应该将每个标头参数放在一行中:

#+PROPERTY: header-args :session *my_python_session* :results silent :tangle yes

#+PROPERTY可以接受多行内容,但不能以您尝试的方式进行。

从组织手册(7.1属性语法)中:

如果要添加到现有属性的值,请在属性名称后附加“ +”。以下结果导致属性“ var”的值为“ foo = 1 bar = 2”。

#+PROPERTY: var  foo=1
#+PROPERTY: var+ bar=2

因此,由于header-args是属性和:session:results并且:tangle是其值,因此应为:

#+PROPERTY: header-args :session *my_python_session*
#+PROPERTY: header-args+ :results silent
#+PROPERTY: header-args+ :tangle yes

但是只有一行IMO更容易。


要为特定语言附加org-babel标头,则加号应位于语言名称之后,例如:header-args:shell+: :dir /workdir
jfs
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.