วิธีการระบุอาร์กิวเมนต์ส่วนหัวเริ่มต้นในบล็อกรหัส orgmode


19

ฉันคาดว่าจะตั้งค่าอาร์กิวเมนต์ส่วนหัวเริ่มต้นเป็นบล็อกโค้ดในไฟล์ org ของฉันเช่นนี้

#+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_SRCorg-babel-tangle

ฉันคาดหวังว่าฉันไม่จำเป็นต้องตั้งค่า:tangle yesในแต่ละบล็อครหัส ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


24

คุณควรมีอาร์กิวเมนต์หัวข้อทั้งหมดในบรรทัดเดียว:

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

#+PROPERTYยอมรับได้หลายบรรทัด แต่ไม่ใช่ในแบบที่คุณพยายามจะทำ

จากคู่มือองค์กร ( ไวยากรณ์ 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

แต่ง่ายกว่าที่จะมี IMO เพียงบรรทัดเดียว


ในการผนวกส่วนหัว org-babel สำหรับภาษาที่ต้องการเครื่องหมายบวกจะอยู่หลังชื่อภาษาเช่น:header-args:shell+: :dir /workdir
jfs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.