Jak określić domyślne argumenty nagłówka w blokach kodu orgmode

19

Wiążę, aby ustawić domyślne argumenty nagłówka do bloków kodu w moim pliku org, w następujący sposób:

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

Moje bloki kodu wyglądają tak:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Jednak gdy dzwonię org-babel-tanglez tego bufora, otrzymuję bloki kodu Tangled 0 z filename.org . Po dodaniu :tangle yesna końcu #+BEGIN_SRCwiersza blok kodu jest eksportowany podczas wywołania org-babel-tangle.

Spodziewałbym się, że nie muszę ustawiać :tangle yeskażdego bloku kodu. Co ja robię źle?

andreas-h
źródło

Odpowiedzi:

24

Powinieneś mieć każdy argument nagłówka w jednym wierszu:

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

Posiadanie kilku #+PROPERTYlinii jest akceptowane, ale nie w sposób, w jaki próbujesz to zrobić.

Z podręcznika Org ( składnia właściwości 7.1 ):

Jeśli chcesz dodać do wartości istniejącej właściwości, dodaj znak „+” do nazwy właściwości. Następujące wyniki powodują, że właściwość „var” ma wartość „foo = 1 bar = 2”.

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

Skoro header-argsjest to właściwość i :session, :resultsi :tanglesą jej wartości, powinna być:

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

Ale łatwiej jest mieć tylko jedną linię IMO.

cofnie się
źródło
aby dodać nagłówki org-babel dla określonego języka, plus następuje po nazwie języka, np.:header-args:shell+: :dir /workdir
jfs