Sau khi tôi cập nhật Emacs 25.1 đến 26.1, chế độ org không hoạt động nữa


12

Tôi là một chuyên gia về Emacs nhưng tôi sử dụng Emacs org-modekhá thường xuyên. Tôi đã cấu hình Emacs để nhận ra .orgcác tập tin. Sau khi tôi cập nhật lên phiên bản 26.1 Emacs không chỉ nhận ra .orgtệp nữa:

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

nhưng thậm chí không thể thay đổi thành org-mode. M-x org-modecho:

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

Tôi đã không di chuyển .emacstập tin của tôi hoặc .emacs.dthư mục.

Bất kỳ ý tưởng?


Sau khi tôi di chuyển tệp .emacs và thư mục .emacs.d sang một vị trí khác, mọi thứ đều hoạt động tốt. Tôi vẫn muốn biết những gì tôi đã làm sai.
Martin Petersen

FYI bạn đã không làm gì sai. Đây là một thay đổi không tương thích ngược / ngược trong chế độ org và tôi nghi ngờ rằng rất nhiều người nâng cấp lên Emacs 26 đã (và sẽ tiếp tục) bị vấp ngã bởi nó.
phils

Đây là một mẹo, không liên quan đến vấn đề của bạn ở đây: Thay vì di chuyển .emacsra ngoài, thay vào đó , hãy bắt đầu với emacs --no-init-file(trên macOS open -a Emacs --args --no-init-file:). ( --no-init-filecó thể rút ngắn thành -q.) Ngoài ra còn có một cờ --no-site-fileđể dừng tải các tệp cụ thể của trang web.
Harald Hanche-Olsen

Câu trả lời:


16

Emacs 26.1 đi kèm với phiên bản org-mode gần đây hơn nhiều so với 25.1. ob-shđã được đổi tên thành ob-shellở chế độ org 8.2, vì vậy bạn sẽ cần điều chỉnh bất kỳ cấu hình nào trong .emacs đề cập đến ob-sh, như được mô tả trong loại bỏ ob-sh :

** Thay đổi không tương thích

*** được ob-sh.elđổi tên thành ob-shellĐiều này có thể yêu cầu hai thay đổi trong cấu hình người dùng.

  1. Trong org-babel-do-load-languages, thay đổi (sh . t)thành (shell . t).

  2. Chỉnh sửa local.mktập tin để thay đổi giá trị của BTEST_OB_LANGUAGESviệc xóa "sh" và bao gồm "shell".

Bạn rất có thể cần phải tìm kiếm cấu hình của bạn cho một cuộc gọi đến org-babel-do-load-languagesvà thay đổi shđến shelltrong danh sách liên quan của ngôn ngữ.


Cảm ơn bạn đã giúp đỡ. Tôi đã tìm kiếm .emacs và .emacs.d cho chuỗi ob-sh nhưng tôi không thể tìm thấy nó. Dù sao tôi sẽ khôi phục cấu hình của tôi từng bước.
Martin Petersen

Nó có thể là 'sh' thay vì 'ob-sh'. Bẻ khóa cấu hình của bạn sẽ tìm thấy vấn đề chính xác.
rpluim

Cũng emacs --debug-initcó thể xác định chính xác dòng gây ra vấn đề.
rpluim

2
@MartinPeteren Hãy xem cấu hình của bạn để gọi org-babel-do-load-languageshoặc đặt biến org-babel-load-languages. Bạn sẽ cần phải thay đổi shđể shelltrong danh sách liên quan của ngôn ngữ. Nếu bạn có thể cần hỗ trợ cả hai biến thể cũ và mới, hãy cho chúng tôi biết, vì điều đó cũng có thể được sắp xếp.
phils

Nhờ tất cả các bạn, tôi đã có thể giải quyết vấn đề. Bây giờ mọi thứ hoạt động như dự định. Một lần nữa, cảm ơn rất nhiều.
Martin Petersen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.