2012-03-05 36 views
6

Tôi không chắc chắn nó xảy ra như thế nào, nhưng calc không còn hoạt động nữa. Bất cứ khi nào tôi cố gắng để bắt đầu nó, tôi nhận được:Tự động tải không thể xác định hàm calc-dispatch

Autoloading failed to define function calc-dispatch

Nó đã làm việc tốt vào tuần trước và tôi đang sử dụng được xây dựng trong calc, vì vậy tôi không có ý tưởng những gì đã thay đổi để ngăn chặn nó từ làm việc. Tôi chạy lgrep trên một bản sao của thư mục calc tìm kiếm calc-dispatch và nó tìm thấy calc-dispatch tốt. Các tệp .elc của tôi có bị hỏng không?

Khi tôi cố gắng biên dịch lại chúng, tôi có những thứ như:

calc-fin.el:29:1:Error: Required feature `calc' was not provided

+0

Điều đó nghe có vẻ hơi giống các thư mục lisp của Emacs không còn trong 'đường dẫn tải '. Nhưng tôi sẽ ngạc nhiên nếu * bất cứ điều gì * đã được làm việc nếu đó là trường hợp, trừ khi hệ thống tập tin đã thay đổi trong khi Emacs đang chạy? Tôi cho rằng điều này đang xảy ra khi bắt đầu một trường hợp mới của Emacs, mặc dù? Tôi đoán bạn nên kiểm tra các vấn đề quyền truy cập vào các tập tin calc *. – phils

Trả lời

7

Vấn đề là calc của mặc định calc-settings-file được gọi calc.el theo mặc định. Khi tôi lưu các tùy chỉnh của mình, số calc.el trong thư mục .emacs.d của tôi đã bịt kín calc.el trong /usr/share/emacs/lisp/calc/ vì tôi có .emacs.d trong đường dẫn tải của tôi. Chuyển nội dung của tập tin đó đến init.el và xóa nó đã khắc phục sự cố. Tôi đã gửi email cho người bảo trì về vấn đề này và nhận được phản hồi rất nhanh chóng và chắc chắn giải thích vấn đề.

+0

Mặc dù nó sẽ không tạo sự khác biệt trong trường hợp này, hãy lấy '~/.emacs.d' ra khỏi' đường dẫn tải 'nếu bạn chưa làm như vậy (các nhà phát triển Emacs đã tuyên bố rằng đó là một ý tưởng tồi) và sử dụng thư mục con thay thế. – phils

+3

Tôi sử dụng 'my-' làm tiền tố cho tất cả các lisp tùy chỉnh của tôi (cho dù tệp, hàm hoặc biến) để tránh xung đột không gian tên. Tôi muốn khuyên bạn nên làm một cái gì đó tương tự. – phils

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