Festlegen von Standard-Header-Argumenten in Organisationscode-Blöcken

19

Ich möchte Standard-Header-Argumente für die Codeblöcke in meiner Organisationsdatei festlegen:

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

Meine Codeblöcke sehen folgendermaßen aus:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Wenn ich jedoch org-babel-tanglevon diesem Puffer aus aufrufe, erhalte ich Tangled 0-Codeblöcke von filename.org . Wenn ich :tangle yesan das Ende der #+BEGIN_SRCZeile füge , wird der Codeblock exportiert, wenn ich aufrufe org-babel-tangle.

Ich würde erwarten, dass ich nicht :tangle yesauf jeden Codeblock einstellen muss. Was mache ich falsch?

andreas-h
quelle

Antworten:

24

Sie sollten jedes Header-Argument in einer Zeile haben:

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

Es #+PROPERTYwird akzeptiert, mehrere Zeilen zu haben, aber nicht so, wie Sie es versuchen.

Aus dem Org-Handbuch ( 7.1 Eigenschaftensyntax ):

Wenn Sie den Wert einer vorhandenen Eigenschaft erhöhen möchten, fügen Sie dem Eigenschaftsnamen ein '+' hinzu. Das Folgende führt dazu, dass die Eigenschaft 'var' den Wert "foo = 1 bar = 2" hat.

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

Also, da header-argsdas Eigentum ist und :session, :resultsund :tanglesind seine Werte, sollte es sein:

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

Aber es ist einfacher, nur eine Zeile IMO zu haben.

undostres
quelle
Um org-babel-Header für eine bestimmte Sprache anzufügen, folgt das Plus nach dem Namen der Sprache, z. B.:header-args:shell+: :dir /workdir
jfs