Как указать аргументы заголовка по умолчанию в блоках кода orgmode


19

Я пытаюсь установить аргументы заголовка по умолчанию для блоков кода в моем орг-файле, например так:

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

Мои блоки кода выглядят так:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Однако, когда я вызываю org-babel-tangleиз этого буфера, я получаю Tangled 0 кодовых блоков из filename.org . Когда я добавляю :tangle yesв конец #+BEGIN_SRCстроки, блок кода экспортируется, когда я звоню org-babel-tangle.

Я ожидаю, что мне не нужно устанавливать :tangle yesкаждый блок кода. Что я делаю неправильно?

Ответы:


24

Вы должны иметь каждый аргумент заголовка в одной строке:

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

Допускается наличие нескольких #+PROPERTYстрок, но не так, как вы пытаетесь это сделать.

Из руководства Org ( синтаксис свойств 7.1 ):

Если вы хотите добавить значение существующего свойства, добавьте «+» к имени свойства. Следующие результаты приводят к тому, что свойство var имеет значение «foo = 1 bar = 2».

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

Итак, поскольку header-argsэто свойство и :session, :resultsи :tangleего значения, оно должно быть:

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

Но проще иметь только одну строчку ИМО.


для добавления заголовков org-babel для определенного языка, плюс идет после названия языка, например,:header-args:shell+: :dir /workdir
jfs
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.