Cách chỉ định đối số tiêu đề mặc định trong khối mã orgmode


19

Tôi buộc phải đặt đối số tiêu đề mặc định cho các khối mã trong tệp org của mình, như thế này:

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

Các khối mã của tôi trông như thế này:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Tuy nhiên, khi tôi gọi org-babel-tangletừ bộ đệm này, tôi nhận được các khối mã Tangled 0 từ filename.org . Khi tôi thêm :tangle yesvào cuối #+BEGIN_SRCdòng, khối mã được xuất khi tôi gọi org-babel-tangle.

Tôi hy vọng rằng tôi không cần phải thiết lập :tangle yestrên mỗi khối mã. Tôi đang làm gì sai?

Câu trả lời:


24

Bạn nên có mọi đối số tiêu đề trong một dòng:

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

Có một vài #+PROPERTYdòng được chấp nhận, nhưng không phải theo cách bạn đang cố gắng thực hiện.

Từ hướng dẫn sử dụng Org ( Cú pháp thuộc tính 7.1 ):

Nếu bạn muốn thêm vào giá trị của một tài sản hiện có, hãy thêm '+' vào tên thuộc tính. Các kết quả sau đây trong thuộc tính 'var' có giá trị là foo = 1 bar = 2.

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

Vì vậy, vì header-argslà tài sản và :session, :results:tanglelà giá trị của nó, nên nó là:

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

Nhưng nó dễ dàng hơn khi chỉ có một dòng IMO.


để nối các tiêu đề org-babel cho một ngôn ngữ cụ thể, dấu cộng đi sau tên ngôn ngữ, ví dụ::header-args:shell+: :dir /workdir
jfs
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.