Cómo especificar argumentos de encabezado predeterminados en bloques de código de orgmode

19

Estoy tratando de establecer argumentos de encabezado predeterminados para los bloques de código dentro de mi archivo de organización, así:

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

Mis bloques de código se ven así:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Sin embargo, cuando llamo org-babel-tangledesde este búfer, obtengo bloques de código Tangled 0 de filename.org . Cuando agrego :tangle yesal final de la #+BEGIN_SRClínea, el bloque de código se exporta cuando llamo org-babel-tangle.

Esperaría que no necesite configurar :tangle yescada bloque de código. ¿Qué estoy haciendo mal?

andreas-h
fuente

Respuestas:

24

Debería tener cada argumento de encabezado en una línea:

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

Se #+PROPERTYaceptan varias líneas, pero no en la forma en que intentas hacerlo.

Del manual de Org ( sintaxis de propiedad 7.1 ):

Si desea agregar al valor de una propiedad existente, agregue un '+' al nombre de la propiedad. Los siguientes resultados hacen que la propiedad 'var' tenga el valor “foo = 1 bar = 2”.

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

Por lo tanto, ya que header-argses la propiedad y :session, :resultsy :tangleson sus valores, debe ser:

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

Pero es más fácil tener una sola línea IMO.

undostres
fuente
para agregar encabezados org-babel para un idioma específico, la ventaja va después del nombre del idioma, por ejemplo,:header-args:shell+: :dir /workdir
jfs