Come specificare gli argomenti di intestazione predefiniti nei blocchi di codice orgmode


19

Sto cercando di impostare argomenti di intestazione predefiniti sui blocchi di codice all'interno del mio file org, in questo modo:

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

I miei blocchi di codice si presentano così:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Tuttavia, quando chiamo org-babel-tangleda questo buffer, ottengo blocchi di codice Tangled 0 da nomefile.org . Quando aggiungo :tangle yesalla fine della #+BEGIN_SRClinea, il blocco di codice viene esportato quando chiamo org-babel-tangle.

Mi aspetto che non debba essere impostato :tangle yessu ciascun blocco di codice. Che cosa sto facendo di sbagliato?

Risposte:


24

Dovresti avere ogni argomento dell'intestazione in una riga:

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

#+PROPERTYÈ accettata più righe, ma non nel modo in cui stai provando a farlo.

Dal manuale dell'organizzazione ( sintassi della proprietà 7.1 ):

Se si desidera aggiungere al valore di una proprietà esistente, aggiungere un '+' al nome della proprietà. I seguenti risultati portano alla proprietà 'var' il valore “foo = 1 bar = 2”.

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

Quindi, poiché header-argsè la proprietà e :session, :resultse :tanglesono i suoi valori, dovrebbe essere:

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

Ma è più facile avere solo una riga IMO.


per aggiungere intestazioni org-babel per una lingua specifica, il plus segue il nome della lingua, ad es.:header-args:shell+: :dir /workdir
jfs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.