หลังจากฉันอัปเดต Emacs 25.1 เป็น 26.1 โหมด org ไม่ทำงานอีกต่อไป


12

ฉันเป็นอะไรก็ได้นอกจากเป็นผู้เชี่ยวชาญของ Emacs แต่ฉันใช้ Emacs org-modeค่อนข้างบ่อย ฉันกำหนดค่า Emacs เพื่อให้สามารถจดจำ.orgไฟล์ได้ หลังจากฉันอัปเดตเป็นเวอร์ชัน 26.1 Emacs ไม่เพียงจดจำ.orgไฟล์ได้อีกต่อไป:

File mode specification error: (file missing Cannot open load file No such file or directory ob-sh)

org-modeแต่ไม่สามารถแม้แต่จะเปลี่ยนไป M-x org-modeให้:

Cannot open load file No such file or directory ob-sh

ฉันไม่ได้ย้าย.emacsไฟล์หรือ.emacs.dโฟลเดอร์

ความคิดใด ๆ


หลังจากฉันย้ายไฟล์. emacs และโฟลเดอร์. emacs.d ไปยังตำแหน่งอื่นทุกอย่างทำงานได้ดี ยังฉันอยากจะรู้ว่าสิ่งที่ฉันทำผิด
Martin Petersen

FYI คุณไม่ได้ทำอะไรผิด นี่เป็นการเปลี่ยนแปลงที่เข้ากันไม่ได้ / ย้อนหลัง - ในโหมดองค์กรและฉันสงสัยว่าผู้คนจำนวนมากที่อัพเกรดเป็น Emacs 26 นั้นได้รับการปรับปรุงแล้ว
phils

นี่คือเคล็ดลับที่ไม่เกี่ยวข้องกับปัญหาของคุณที่นี่: แทนที่จะ.emacsออกไปให้ไกลแค่เริ่มต้นด้วยemacs --no-init-file(บน macOS:) open -a Emacs --args --no-init-fileแทน ( --no-init-fileสามารถย่อให้เล็กลง-qได้) นอกจากนี้ยังมีการตั้งค่าสถานะ--no-site-fileเพื่อหยุดการโหลดไฟล์เฉพาะไซต์
Harald Hanche-Olsen

คำตอบ:


16

Emacs 26.1 มาพร้อมกับโหมด org- รุ่นล่าสุดมากกว่า 25.1 ob-shถูกเปลี่ยนชื่อเป็นob-shellในโหมด org 8.2 ดังนั้นคุณจะต้องปรับการกำหนดค่าใด ๆ ใน. emacs อ้างถึงob-shตามที่อธิบายไว้ในการลบ ob-sh :

** การเปลี่ยนแปลงที่เข้ากันไม่ได้

*** ob-sh.elเปลี่ยนชื่อเป็นob-shellนี่อาจต้องมีการเปลี่ยนแปลงสองอย่างในการกำหนดค่าผู้ใช้

  1. ในorg-babel-do-load-languagesการเปลี่ยนแปลงไป(sh . t)(shell . t)

  2. แก้ไขlocal.mkไฟล์เพื่อเปลี่ยนค่าของBTEST_OB_LANGUAGESการลบ "sh" และรวมถึง "shell"

คุณได้มากที่สุดจำเป็นต้องค้นหาการตั้งค่าของคุณสำหรับการโทรไปorg-babel-do-load-languagesและการเปลี่ยนแปลงshไปshellในรายการที่เกี่ยวข้องของภาษา


ขอบคุณสำหรับความช่วยเหลือของคุณ. ฉันค้นหา. emacs และ. emacs.d สำหรับ string ob-sh แต่หาไม่เจอ อย่างไรก็ตามฉันจะคืนค่าการตั้งค่าของฉันทีละขั้นตอน
Martin Petersen

มันอาจเป็น 'sh' มากกว่า 'ob-sh' การตัดการกำหนดค่าของคุณควรพบปัญหาที่แน่นอน
rpluim

นอกจากนี้ยังemacs --debug-initอาจระบุเส้นซึ่งจะก่อให้เกิดปัญหา
rpluim

2
ดู @MartinPetersen ในการกำหนดค่าของคุณสำหรับการเรียกร้องให้หรือการตั้งค่าตัวแปรorg-babel-do-load-languages org-babel-load-languagesคุณจะต้องเปลี่ยนshเป็นshellในรายการภาษาที่เกี่ยวข้อง หากคุณอาจต้องการการสนับสนุนทั้งรุ่นเก่าและใหม่แจ้งให้เราทราบตามที่สามารถจัดเรียงได้
phils

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