2011-09-25 18 views
7

Tôi có Emacs hoạt động khá tốt và sau đó tôi khởi động lại máy tính của mình. Bây giờ khối mã này ngăn tôi tải các tệp init của tôi:byte-code: Giá trị của biểu tượng dưới dạng biến bị vô hiệu: org-babel-tangle-lang-exts

(require 'ob-clojure) 
(org-babel-do-load-languages 
    'org-babel-load-languages 
    '((emacs-lisp . nil) 
     (R . t) 
     (python . t) 
     (js . t) 
     (scheme . t) 
     (C . t) 
     (clojure . t) 
     (lilypond . t) 
     (octave . t))) 

Tôi không biết tại sao điều này lại xảy ra. Tôi đã có được babel để làm việc tốt với R trước khi tôi khởi động lại. Bây giờ tôi nhận được thông báo:

byte-code: Symbol's value as variable is void: org-babel-tangle-lang-exts

Tôi grep'd thư mục cho bất cứ điều gì đề cập đến org-babel và chỉ biểu hiện ở trên xuất hiện. Điều đó cộng với thực tế là phần còn lại của mã init-file của tôi được nạp khi tôi loại bỏ nó làm cho tôi nghĩ rằng mã này là vấn đề. Nhưng tại sao chế độ org lại đề cập đến một chức năng mà tôi không có?

Chạy emacs --debug-init cho:

Debugger entered--Lisp error: (void-function org-babel-do-load-languages) (org-babel-do-load-languages (quote org-babel-load-languages) (quote (... ... ... ... ... ... ... ...))) eval-buffer(#load<2>> nil "/home/kca/.emacs.d/init-org.el" nil t) ; Reading at buffer position 3080 load-with-code-conversion("/home/kca/.emacs.d/init-org.el" "/home/kca/.emacs.d/init-org.el" nil nil) load("init-org") eval-buffer(# nil "/home/kca/.emacs.d/init.el" nil t) ; Reading at buffer position 1464 load-with-code-conversion("/home/kca/.emacs.d/init.el" "/home/kca/.emacs.d/init.el" t t) load("/home/kca/.emacs.d/init" t t) #[nil "\205\264

tôi đã cố gắng để kiểm tra xem phiên bản org-mode đúng là tải:

M-x load-library 
org 
M-x org-version 
=> Org-mode version 7.7 

Đây là mã trong init.el rằng đang tải nó:

(add-to-list 'load-path (concat conf-dir "org-7.7/lisp")) 
(add-to-list 'load-path (concat conf-dir "org-7.7/contrib/lisp")) 

Tôi đang sử dụng Emacs 23.2 và Org-7.7. Cảm ơn bạn đã giúp đỡ!

Trả lời

9

Thực ra, sự cố là tôi không hiểu hướng dẫn thủ công của tổ chức. Rõ ràng, tôi cần phải đặt (yêu cầu 'org-install)(yêu cầu' ob-tangle) vào tệp init của tôi để có được các tính năng lập trình biết chữ. Tôi không chắc làm thế nào tôi có R để làm việc trong babel trước, mặc dù. Ồ, nó hoạt động ngay bây giờ! Mẹo để chỉnh sửa trong kênh irc chế độ org.

2

Thử khởi động lại. Sau đó đọc phần còn lại ở đây, nếu điều đó không giúp được ...

Sử dụng tìm kiếm nhị phân tệp init của bạn để xác định mã bạn đang tải là vấn đề.

Đảm bảo bạn tải mã nguồn (*.el, chứ không phải *.elc) cho mã có vấn đề.

Đặt debug-on-error thành không phải nil, vì vậy bạn có được một backtrace cho bạn biết điều gì đó về ngữ cảnh của lỗi.

Nếu lỗi hoàn toàn được chứa trong một số gói bên ngoài, hãy đảm bảo tất cả các tệp của bạn cho gói đó đều có cùng phiên bản gói.

Nếu điều duy nhất bạn thay đổi đã khởi động lại, thì có lẽ vấn đề nằm trong biến môi trường. Một giả định là vì lý do nào đó, biến số load-path của bạn không có giá trị phù hợp, do đó, nó không tải tất cả các tệp bạn cần. Hoặc có thể bạn đã chuyển một số mã của gói đó?

HTH. Bạn nên bắt đầu tìm hiểu thêm về vấn đề này.

Các vấn đề liên quan