คำถามติดแท็ก org-babel

คุณสมบัติของโหมด Org ที่จัดการซอร์สโค้ดสำหรับหลายภาษา สามารถเรียกใช้ซอร์สโค้ดจากภายในเอกสารโหมดองค์กรช่วยอำนวยความสะดวกในการผลิตเอกสารการเขียนโปรแกรมและการจัดการการวิจัยที่ทำซ้ำได้ โปรดทราบว่าขณะนี้ [tag: org-babel] ได้รวมอยู่ใน [tag: orgmode] เป็นการทำงานกับซอร์สโค้ดและไม่ได้มีนามสกุลแยกต่างหากอีกต่อไป

2
การซิงค์การเปลี่ยนแปลงในไฟล์ที่มีการพันกันกลับไปเป็นไฟล์ org ดั้งเดิม
ฉันกำลังใช้โหมด org กับโหมด fountain เพื่อเขียนบทภาพยนตร์ องค์กรสำหรับองค์กรและแหล่งข้อมูลสำหรับการจัดรูปแบบภาพยนตร์ นี่คือรหัสที่ฉันใช้เพื่อจุดประสงค์นี้: การตั้งค่าสำหรับการทำงานกับบล็อกแหล่งที่มา (แหล่งน้ำพุ) ในองค์กร ;; prevent org from messing with indentation of the source text. (setq org-src-preserve-indentation t) (setq org-edit-src-content-indentation 0) ;; open the buffer for editing fountain in another window. (setq org-src-window-setup (quote reorganize-frame)) ;; prevent a message in the edit buffer from …

2
ฉันสามารถรวมบล็อกรหัสทั่วไปในบล็อกโค้ดสองแบบในโหมดองค์กรได้หรือไม่
ฉันมีorg-modeไฟล์ที่มีสารบัญและบล็อกรหัส Python สองบล็อกเพื่อแยกข้อมูลสรุปที่แตกต่างออกไป ฉันต้องการแบ่งปันค่าคงที่ทั่วไปและฟังก์ชั่นบางอย่างระหว่างโค้ดบล็อกทั้งสองนี้ โดยหลักการแล้วฉันจะทำเช่นนี้โดยแยกรหัสทั่วไปออกเป็นบล็อคโค้ดแยกซึ่งจะถูกรวมและประเมินโดยอัตโนมัติเมื่อใดก็ตามที่บล็อกสองบล็อกอื่นถูกประเมิน ในไวยากรณ์ที่สร้างขึ้นมันจะมีลักษณะดังนี้: #+NAME: init_block #+BEGIN_SRC python ... common constants and functions here ... #+END_SRC #+NAME: summary_1 #+BEGIN_SRC python :prepend init_block ... data-processing code depending on init code goes here ... #+END_SRC #+NAME: summary_2 #+BEGIN_SRC python :prepend init_block ... more processing which also depends on init code …

1
ความแตกต่างระหว่าง sh และ shell สำหรับ org-babel คืออะไร
ฉันกำลังทดลองกับการหาข้อมูลจากโหมดองค์กรลงในสคริปต์เชลล์ของฉันและฉันได้พบกับความประหลาด: #+tblname: simple-table | 1 | | 2 | | 3 | | 4 | | 5 | #+name: work-with-simple-list-shell #+begin_src shell :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-shell : 1 #+name: work-with-simple-list-sh #+begin_src sh :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-sh | 1 | | 2 | | 3 …

3
Org Mode Babel - การประเมินการบล็อกรหัสแบบโต้ตอบ
ฉันต้องการประเมินในบล็อกซอร์สโค้ดโหมดองค์กรใน C ++ ที่มีคำสั่ง "cin" แต่ฉันไม่สามารถหาวิธีที่จะมีการประเมินแบบโต้ตอบ (พร้อมอินพุตของผู้ใช้) ระหว่างการประเมินผล ตัวอย่างของรหัส: #+BEGIN_SRC C++ :results output :export code :tangle myfile.cpp #include <iostream> using namespace std; int main() { int a; cin>>a; cout<<a+1; } #+END_SRC เป็นไปได้หรือไม่ที่จะมีการประเมินแบบโต้ตอบหรือจำลอง (โดยการป้อนรหัสปลอมให้กับซอร์สโค้ด)

4
Org Mode Babel - การประเมินการบล็อกรหัสแบบโต้ตอบใน Python
ในทำนองเดียวกันกับคำถามนี้ฉันต้องการประเมิน (ในโหมด org) บล็อกซอร์สของ Python ที่มีคำแนะนำ "อินพุต" แต่ฉันไม่สามารถหาวิธีที่จะมีการประเมินผลแบบโต้ตอบ (กับอินพุตของผู้ใช้) ในระหว่างการประเมินผล ล่วงหน้า (เก็บไว้ในไฟล์เช่น) ข้อ จำกัด ของฉันคือการใช้inputคำแนะนำอย่างชัดเจนเนื่องจากทั้งหมดนี้ควรรวมอยู่ในตำราเรียนสำหรับนักเรียน ตัวอย่างของรหัส: #+BEGIN_SRC python :results output a= input("Value") print(a) #+END_SRC เป็นไปได้หรือไม่ที่จะมีการประเมินแบบโต้ตอบหรือจำลองมัน (โดยการป้อนรหัสปลอมให้กับซอร์สโค้ด)

4
Org-mode: เอาต์พุตบล็อกต้นทางไพพ์เป็น stdin ไปยังบล็อกซอร์สถัดไป
ฉันพยายามไพพ์เอาต์พุตของหนึ่งบล็อกแหล่งที่มากับบล็อกแหล่งถัดไปเป็นอินพุตมาตรฐาน นี่คือตัวอย่างของสิ่งที่ฉันมี: Create stdin data: #+header: :exports code #+header: :results output #+begin_src sh echo "That goes to the next" #+end_src #+name: piped #+RESULTS: : That goes to the next Use "piped" as stdin: #+header: :exports results #+header: :stdin piped #+header: :results output #+begin_src sh VALUE=$(cat) echo "I got:" echo "$VALUE" …

1
การดีบักบล็อครหัสในโหมดองค์กร
มีเครื่องมือใดบ้างที่ทำให้เกิดข้อผิดพลาดในการติดตามในบล็อกโหมดองค์กรได้ง่ายขึ้น (ฉันทำงานกับงูหลามโดยเฉพาะ) เวิร์กโฟลว์ปัจจุบันของฉันคือการคัดลอกรหัสที่ทำงานกับบล็อกแหล่งที่มาและพยายามปรับเปลี่ยนเพียงเล็กน้อยเท่านั้น หากเกิดข้อผิดพลาดที่สำคัญฉันจะคัดลอกมันกลับไปที่ไฟล์อื่นหรือทำให้ยุ่งเหยิงบล็อกและแก้จุดบกพร่องไฟล์ที่เกิดขึ้น มีเครื่องมืออะไรบ้างที่ฉันขาดหายไป? (เช่นบางอย่างเช่นโหมดการรวบรวมที่จะนำคุณไปยังบรรทัดที่ข้อผิดพลาดเปิดอยู่) แก้ไข: ตัวอย่างเช่นฉันเพิ่งพบ Cc Cv v ซึ่งแสดงบัฟเฟอร์ที่มีการขยายการอ้างอิงในตอนนี้ น่าเสียดายที่มันไม่รวมอาร์กิวเมนต์ของส่วนหัวดังนั้นโค้ดจากสิ่งนี้จึงไม่สามารถรันได้โดยไม่ต้องนำเข้าสิ่งที่อยู่ในล่ามก่อน ในทำนองเดียวกันหากฉันมีคำสั่ง return ซึ่งทำให้ไม่สามารถดำเนินการได้และบัฟเฟอร์ไม่สามารถแก้ไขได้ดังนั้นใช้ขั้นตอนหลายขั้นตอนในการรับซอร์สที่รันได้จากบล็อกหลาม

4
การประเมินโค้ด Clojure ในโหมดองค์กรไม่สร้างผลลัพธ์
ฉันพยายามเรียกใช้รหัส clojure จากไฟล์ org ของฉันเพื่อทำการเขียนโปรแกรมบางอย่าง อะไรไม่ทำงาน: No output producedเมื่อผมดำเนินการบล็อกรหัสที่มาฉันได้รับ ตัวอย่างโค้ด src #+begin_src clojure (+ 2 2) #+end_src clojure ทำงานอะไร: cider-jack-in ใช้งานได้และฉันสามารถเรียกใช้งานรหัสใน nREPL ฉันสามารถเรียกใช้รหัสจาก.cljไฟล์ได้ ขอบคุณ รายละเอียด Emacs 25.1 ใช้ Spacemacs Org-Mode 9.0.5 การกำหนดค่าองค์กร Babel (defun dotspacemacs/user-config () (require 'ob) (require 'ob-clojure) (require 'paredit) (require 'org-babel-clojure) (setq org-babel-clojure-backend 'cider) (require 'cider) (org-babel-do-load-languages …

1
แสดงข้อผิดพลาดและคำเตือนในบล็อกรหัสโหมดองค์กร
ฉันต้องการรายงานคำเตือนและข้อผิดพลาดเมื่อประเมินบล็อก Python ในไฟล์ Org *Org-Babel Error Output*เมื่อการป้องกันรหัสมีข้อผิดพลาดหลามไวยากรณ์องค์กรสงเคราะห์ปรากฏพวกเขาในบัฟเฟอร์แยกต่างหากที่เรียกว่า :results valueมันจะดีที่จะสามารถที่จะส่งคำเตือนของตัวเองมีมากเกินไปขณะที่การรักษาความสามารถในการส่งกลับผลอาร์เรย์ไปยังโหมดองค์กรเป็นตารางการใช้ เพื่อความชัดเจนนี่เป็นตัวอย่างของสิ่งที่ฉันคิดว่าอาจใช้ได้: #+BEGIN_SRC python import sys sys.stderr.write('Warning.\n') sys.stderr.flush() return [['Table', 'header'], ['table', 'data']] #+END_SRC #+RESULTS: | Table | header | | table | data | แก้ไขเพื่อเพิ่ม: การสนทนานี้ในรายการโหมดองค์กรแนะนำว่าผลลัพธ์ข้อผิดพลาดจะปรากฏเฉพาะเมื่อการประเมินบล็อกรหัสล้มเหลว ดังนั้นจึงดูเหมือนว่าเป็นไปได้ แต่จะยกเลิกการประเมินโดยใช้exit(1)หรือคล้ายกันเท่านั้น

2
องค์กรมีการดำเนินการ "ผกผันยุ่งเหยิง" เช่นสำหรับการร่วมมือกับผู้ใช้ที่ไม่ใช่องค์กรองค์กรหรือไม่
ฉันต้องการเขียนบันทึกย่อของตัวเอง / ทดสอบ / รหัสในองค์กรแล้วใช้org-bable-tangleในการผลิตไฟล์ต้นฉบับ อย่างไรก็ตามไฟล์เหล่านี้ทั้งหมดอาจมีการควบคุมเวอร์ชันและด้วยเหตุนี้อาจมีการเปลี่ยนแปลงจากสภาพแวดล้อมนอกองค์กรของฉัน ฉันต้องการที่จะมีsrcบล็อกจำนวนหนึ่งและยุ่งเหยิงเป็นไฟล์ต่าง ๆ กันซึ่งแต่ละอันจะส่งผลต่อการควบคุมเวอร์ชัน แต่ในเวลาเดียวกันสามารถ "แก้ให้หายยุ่ง" แต่ละไฟล์เหล่านี้กลับสู่ไฟล์ org ของฉันหลังจากดึงการเปลี่ยนแปลงใด ๆ จากการควบคุมเวอร์ชัน มีวิธีที่ตรงไปตรงมาในการทำเช่นนี้? ตอนนี้ฉันกำลังพิจารณาที่จะเล่นกับinsert-file-contents

1
เป็นไปได้หรือไม่ที่จะอ่านอินพุตของผู้ใช้จาก STDIN ขณะที่กำลังบล็อกซอร์สบล็อก?
เป็นไปได้ไหมที่จะอ่านอินพุตของผู้ใช้จาก STDIN ในขณะที่กำลังบล็อกซอร์สด้วยorg-babel-tangle? ผมตระหนักถึงเรื่องนี้: Org โหมดบาเบล - code อินเตอร์แอคทีประเมินบล็อก นั่นไม่ได้ช่วยแก้กรณีการใช้งานนี้โดยเฉพาะเนื่องจากมันยังไม่อนุญาตอินพุต STDIN ที่เหมาะสมจากเชลล์ แต่จำลองอินพุตที่ จำกัดภายใน Emacs เท่านั้น พื้นหลัง ฉันต้องการใช้ Babel ของ Org เพื่อเรียนรู้ภาษาการเขียนโปรแกรมใหม่ (Perl และ Bash) โดยใช้บทเรียนจากไฟล์ org หนึ่งไฟล์ ปัญหาคือบทเรียนจำนวนมากพึ่งพา STDIN ตัวอย่างเช่นหากมีการทำงานชิ้นอาหารอันโอชะ Perl ต่อไปนี้: #+BEGIN_SRC perl :tangle hello-name.pl :results output :export code use 5.010; use strict; use warnings; say "What is …

3
การแก้ไขหลายบล็อกต้นทางในหนึ่งบัฟเฟอร์
ฉันมีบล็อกแหล่งที่มาหลายอันซึ่งทั้งหมดถูกพันกันเป็นไฟล์เดียวกัน เมื่อฉันเรียกใช้C-c 'ภายในหนึ่งบล็อกเฉพาะบล็อกนี้เท่านั้นที่แสดงในบัฟเฟอร์ใหม่ มีความเป็นไปได้ที่จะแสดงทุกส่วนของไฟล์นี้ภายในบัฟเฟอร์นี้ (แทนที่จะเป็นเพียงส่วนย่อยนี้เท่านั้น)? ตัวอย่าง: #+begin_src emacs-lisp :tangle foo.el (defvar *ok* "") #+end_src This is where the variable is stored... #+begin_src emacs-lisp :tangle foo.el (defun add-one (n) (+ 1 n)) #+end_src ถ้าฉันโดนC-c 'บล็อกแรกฉันจะได้รับ: (defvar *ok* "") แต่ฉันต้องการ: (defvar *ok* "") (defun add-one (n) (+ 1 n))

1
สร้างการเน้นไวยากรณ์ที่สอดคล้องกันของแหล่งบล็อก LaTeX
โซลูชันขององค์กร Org ด้วยตนเองสำหรับการเน้นไวยากรณ์ของบล็อกรหัส org-babel คือการเปิดใช้ฟอนต์แบบดั้งเดิม (setq org-src-fontify-natively t) ทำงานได้ดีสำหรับรหัส LaTeX ที่อยู่ในบล็อกด้วย #+BEGIN_SRC latex แต่ไม่ใช่สำหรับบล็อกที่มี: #+BEGIN_LATEX มีวิธีในการทำบล็อกแหล่งข้อมูลทั้งสองประเภทของ LaTeX ใช้ไวยากรณ์ LaTeX เดียวกันที่เน้นโครงร่าง / การตั้งค่าหรือไม่

2
การสร้างตารางที่มีส่วนหัวจากการบล็อกรหัส
ฉันต้องการสร้างตารางที่มีส่วนหัวจากบล็อคโค้ด บางสิ่งเช่นนี้ #+BEGIN_SRC emacs-lisp :results value table :table-header | First | Second | (identity '((a b) (c d))) #+END_SRC #+RESULTS: | First | Second | |-------+--------| | a | b | | c | d | แต่น่าเสียดายที่บางอย่างเช่น:table-header | First | Second |ไม่ได้อยู่ หรือฉันหวังว่าจะได้เห็นบางสิ่งบางอย่าง (ที่นี่ฉันใช้(identity ...)เป็นตัวยึดตำแหน่งสำหรับรหัสซึ่งคำนวณค่าจริง) วิธีแก้ปัญหานี้ไม่ได้ทำเพื่อฉัน: #+BEGIN_SRC emacs-lisp :results value …

1
บล็อคโค้ดที่สร้างตารางองค์กรที่จะใช้ในภายหลังโดยบล็อกโค้ดอื่น ๆ
ฉันมีปัญหาเล็กน้อยกับบล็อคโค้ดที่สร้างตาราง org เพื่อใช้ในภายหลังโดยบล็อคโค้ดอื่น ตัวอย่างเช่น: #+NAME: upper_air #+BEGIN_SRC clojure :results output raw (clojure.pprint/print-table table) #+END_SRC จะผลิต #+RESULTS: upper_air | :m | :degree | :meter/second | :degC | :millibar | |---------+---------+---------------+------------+-----------| | 1545.0 | 175.0 | 12.36 | 15.400001 | 850.0 | | 3162.0 | 265.0 | 6.69 | 4.8 | 700.0 …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.