Org-mode 9: ไม่สามารถ eval block-code


45

My Emacs config อยู่ใน.orgไฟล์ที่ฉันบล็อกซอร์สโค้ดเป็น.elไฟล์ ฉันสามารถประเมินซอร์สบล็อกด้วยC-c C-c

วันนี้ฉันอัปเดตเป็นโหมด org 9 เวอร์ชันจาก org elpa และตอนนี้ประเมินบล็อกแหล่งที่มาเช่น

#+BEGIN_SRC emacs-lisp :tangle yes
(setq org-export-coding-system 'utf-8)
#+END_SRC

ด้วยC-c C-cพิมพ์ข้อความต่อไปนี้

การประเมินผลของบล็อคโค้ด emacs-lisp นี้ถูกปิดใช้งาน

ในฉันinit.elฉันได้กำหนดภาษาสำหรับ org-babel แล้ว:

(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
  (org . t)
  (sh . t)))

ถ้าฉันโหลดโหมด org-stock ของ Emacs ฉันสามารถยุ่งเหยิงได้C-c C-cอย่างที่คาดไว้ ฉันไม่พบการเปลี่ยนแปลงใด ๆ เกี่ยวกับสิ่งนี้ในการเปลี่ยนแปลงสำหรับโหมด org 9

วิธีการเปิดใช้งานการประเมินผลการบล็อกรหัสในโหมดองค์กร 9


1
คุณมีปัญหาเดียวกันเมื่อคุณใช้org-babel-execute-src-block?
bertfred

ติดตั้งโหมดองค์กรอีก.emacs.d/elpaครั้ง(ลบโฟลเดอร์องค์กรตั้งแต่แรก) ปัญหาดังกล่าวอาจได้รับการแก้ไขแล้ว: lists.gnu.org/archive/html/emacs-orgmode/2016-11/msg00054.html
VanLaser

@bertfred ให้ผลลัพธ์เช่นเดียวกับ <kbd> Cc Cc </kbd>
rrogg

1
ฉันมีปัญหาเดียวกันและต้องติดตั้งใหม่อย่างหนัก (บางอย่างเช่นนี้ แต่ฉันจำไม่ได้เพราะฉันรู้สึกหงุดหงิดและไม่ได้จดบันทึก: ถอนการติดตั้งออกจาก emacs ลบจาก Elpa เริ่ม emacs ติดตั้งจาก Elpa ออกจาก emacs เริ่ม emacs))
amitp

ฉันเสียใจมากที่รายงานว่าปัญหานี้ดูเหมือนจะกลับมาแล้ว ต่อไปนี้มาจากการติดตั้งใหม่ลงในเครื่องเปล่า การประเมินบล็อกแหล่งที่มาถูกปิดใช้งานและฉันไม่เห็นวิธีการเปิดใช้งาน Org-babel ดูเหมือนว่าจะตาย (emacs-version) "GNU Emacs 25.1.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 เวอร์ชั่น 10.9.5 (Build 13F1911)) ของ 2016-09-17" (รุ่น org) "9.0.5"
Reb.Cabin

คำตอบ:


42

ผมคิดว่าปัญหานี้เกิดจากการเปลี่ยนแปลงของorg-babel-check-confirm-evaluateจากแมโครเพื่อฟังก์ชั่น หากคุณมีorg-mode(และทำให้แมโครเก่า) ถูกโหลดเมื่อคุณรวบรวมรหัสใหม่มันจะเห็นแมโครเก่าแทนฟังก์ชันใหม่

ดังที่คนอื่น ๆ ได้ชี้ให้เห็นว่าการถอนการติดตั้งorg-modeรีสตาร์ท Emacs (โดยไม่โหลดorg-mode) และการติดตั้งใหม่จะช่วยแก้ปัญหาได้ นอกจากนี้คุณยังสามารถลบรวบรวมไฟล์และคอมไพล์ด้วย.elcbyte-recompile-directory


น่ากลัวผมมีปัญหาเดียวกันแน่นอนและผมก็ไม่เข้าใจว่าทำไมมันไม่ได้ทำงาน
Joafigue

1
ใช่นี่เป็นคำอธิบายและการแก้ปัญหาที่ดี แต่ฉันพบวิธีแก้ปัญหาด้านล่างโดย @ בנימןהגליליง่ายกว่าการถอนการติดตั้ง / ติดตั้งโหมดองค์กรอีกครั้ง
modulitos

38

วิธีทำอย่างละเอียดใน @erikstokes:

rm ~/.emacs.d/elpa/ORGDIRNAME/*.elc

โดยที่ORGDIRNAMEเป็นชื่อของไดเร็กทอรี core ogrmode รีสตาร์ท emacs และคุณสามารถเรียกใช้การorg-babelบล็อกรหัสได้แล้ว


1
สิ่งนี้ใช้ได้กับฉันด้วย org-9.1.13 มันเร็วกว่าการติดตั้งใหม่ โปรดทราบว่าชื่อไดเรกทอรีขององค์กรที่มีแนวโน้มที่จะแตกต่างกัน
ephsmith

1
สิ่งนี้ใช้ได้กับฉันใน spacemacs
prasad

4

สำหรับฉันถอนการติดตั้งแพคเกจ org-plus-contrib และติดตั้งใหม่แก้ไขมัน


กำลังติดตั้งรุ่นเดียวกันหรือใหม่กว่าหรือไม่
JeanPierre

ลบเวอร์ชันปัจจุบันและติดตั้งล่าสุดจาก Melpa
zeltak

3

บน Emacs 25.2 (9.0) และการใช้org-plus-contrib:

  • org-babel-execute-src-block ให้ข้อผิดพลาดเดียวกับฉัน C-c C-c
  • การลบ.emacs.d/elpaโฟลเดอร์และการติดตั้งใหม่ไม่สามารถแก้ไขได้
  • แต่M-x package-delete [RET] org-plus-contribและติดตั้งใหม่ด้วยM-x package-install [RET] org-plus-contrib DIDแก้ไข

0

โดยค่าเริ่มต้นองค์กรเปิดใช้งานการบล็อกโค้ด emacs-lisp 'src' เท่านั้นสำหรับการดำเนินการ

org-babel-no-eval-on-ctrl-c-ctrl-c ตัวแปรสามารถใช้ในการลบการดำเนินการบล็อกรหัสจากการผูกปุ่ม "Cc Cc"


-1

.emacs.d/init.elฉันคิดว่าคุณควรเพิ่มรหัสต่อไปนี้ในของคุณ

;; ditaa
(require 'ob-ditaa)
(setq org-confirm-babel-evaluate nil)
(setq org-ditaa-jar-path
  "/path/to/ditaa-0_10.jar")
(org-babel-do-load-languages
  'org-babel-load-languages
  '((ditaa . t)
    (dot . t)))

ฉันมักอยากแนะนำให้กับการเพิ่มชนิดของใด ๆrequireไปยังแฟ้ม init หนึ่งของเพราะมันช้าลงเริ่มต้น
Stefan

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