การแก้ไขหลายบล็อกต้นทางในหนึ่งบัฟเฟอร์


10

ฉันมีบล็อกแหล่งที่มาหลายอันซึ่งทั้งหมดถูกพันกันเป็นไฟล์เดียวกัน เมื่อฉันเรียกใช้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))

2
มีฟังก์ชั่นorg-babel-tangle-jump-to-org org-babel-detangleที่อ้างว่าทำสิ่งนี้หากคุณยุ่งเหยิงกับความคิดเห็นลิงค์ ( :comments linkในบล็อกแหล่งที่มา) ฉันไม่สามารถทำให้พวกเขาทำงานได้ถูกต้อง
erikstokes

คำตอบ:


2

สิ่งที่คุณกำลังมองหาคือคุณสมบัติการแก้ไขแบบสองทางที่ยังมีชีวิตอยู่การแก้ไขในระหว่างการเดินทางไปกลับและไม่เพียงแค่การส่งออกทางเดียวที่ใช้ร่วมกันเพื่อยุ่งเหยิงและคำสั่ง detangle ทางออกที่ดีที่สุดที่ฉันพบคือข้อความ lenticularที่สามารถใช้ได้เป็นแพคเกจlenticบน MELPA


2

เพิ่มอาร์กิวเมนต์ส่วนหัวนี้

#+PROPERTY: header-args+ :comments link

ยุ่งเหยิง ตอนนี้คุณสามารถแก้ไขไฟล์ที่มีการพันกันและออก org-babel-detangleเพื่อให้ทุกอย่างกลับมาเป็นไฟล์ org


2

ฉันสามารถแนะนำorg-tanglesyncอีกครั้งซึ่งมีวิธีการซิงค์ที่ง่ายกว่าorg-babel-detangle

โดยพื้นฐานแล้วถ้าบล็อกถูกพันกันเป็นไฟล์ภายนอกจากนั้นทุกครั้งที่มีการแก้ไขบล็อกไฟล์ภายนอกจะถูกตรวจสอบด้วยและหากตรวจพบความแตกต่างผู้ใช้จะได้รับแจ้งให้ปฏิเสธหรือดึงการเปลี่ยนแปลงภายนอกในบล็อก src org .

นอกจากนี้ยังมีฟังก์ชั่นในการประมวลผลบล็อกที่มีการพันกันโดยอัตโนมัติในบัฟเฟอร์

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