Como especificar argumentos de cabeçalho padrão em blocos de código do modo org


19

Estou tentando definir argumentos de cabeçalho padrão para os blocos de código no meu arquivo organizacional, assim:

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

Meus blocos de código ficam assim:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

No entanto, quando ligo a org-babel-tanglepartir desse buffer, recebo blocos de código emaranhados 0 no nome do arquivo.org . Quando adiciono :tangle yesao final da #+BEGIN_SRClinha, o bloco de código é exportado quando ligo org-babel-tangle.

Eu esperaria não precisar definir :tangle yesem cada bloco de código. O que estou fazendo errado?

Respostas:


24

Você deve ter todos os argumentos do cabeçalho em uma linha:

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

Ter várias #+PROPERTYlinhas é aceito, mas não da maneira que você está tentando fazer.

No manual da organização ( 7.1 sintaxe da propriedade ):

Se você deseja adicionar ao valor de uma propriedade existente, acrescente um '+' ao nome da propriedade. O seguinte resulta na propriedade 'var' com o valor “foo = 1 bar = 2”.

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

Portanto, como header-argsé a propriedade e :session, :resultse :tanglesão seus valores, deve ser:

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

Mas é mais fácil ter apenas uma linha IMO.


anexar cabeçalhos org-babel para um idioma específico, o sinal de mais vai após o nome do idioma, por exemplo,:header-args:shell+: :dir /workdir
jfs
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.