2012-07-27 26 views
5

Tôi có thể sử dụng tệp kiểu của tôi theo 23.1, 23.4, nhưng sau khi cập nhật Emacs thành 24.1, tôi không thể sử dụng các tệp kiểu cũ. Ví dụ: một trong các tệp kiểu của tôi là color-theme-arjen.el. Dưới đây là liên kết: Tại sao tôi không thể sử dụng tệp kiểu chủ đề cũ trong Emacs 24.1?

https://github.com/credmp/color-theme-arjen/blob/master/color-theme-arjen.el

Trong file elisp của tôi, tôi sử dụng mã sau đây để tải chủ đề màu sắc:

(tải tập tin "~/emacs/site-lisp/màu-theme/master_color-theme-arjen.el ") (màu-theme-Arjen)

tôi không biết lý do tại sao các chủ đề màu sắc công trình thuộc Emacs 23,1 & 23,4 nhưng chỉ không wor k dưới Emacs 24.1.

Trong khi Emacs đang tải các tập tin, Emacs cho lỗi sau:

định nghĩa hàm Symbol là void: plist-to-alist

Nếu tôi bỏ ghi chú trên mã và không tải phong cách tệp, lỗi được loại bỏ.

Có ai biết tại sao điều này xảy ra không? Hoặc làm thế nào tôi có thể gỡ lỗi nó?

Trả lời

3

Công cụ chủ đề màu sắc được sửa lại rất nhiều trong 24, có một gói chủ đề màu được bao gồm với emacs (xem M-x customize-themes), và theo như tôi biết vỡ các chủ đề cũ hơn dự kiến.

Gói chủ đề màu từ marmalade được báo cáo cũng hoạt động.

Bạn có thể mở báo cáo lỗi cho color-theme-arjen.

22

Vâng, tôi cũng phát hiện thấy lỗi này. Có vẻ như các Emacs 24 không có chức năng 'plist-to-alist'. Vì vậy, có lẽ bạn nên viết nó cho mình. Đây là của tôi. Đặt chức năng này vào tệp dot-emacs của bạn sau đó nó sẽ là ok.

(defun plist-to-alist (the-plist) 
    (defun get-tuple-from-plist (the-plist) 
    (when the-plist 
     (cons (car the-plist) (cadr the-plist)))) 

    (let ((alist '())) 
    (while the-plist 
     (add-to-list 'alist (get-tuple-from-plist the-plist)) 
     (setq the-plist (cddr the-plist))) 
    alist)) 

Hy vọng nó giúp:)

+0

Cảm ơn bạn rất nhiều!Đến từ một backgroud vim, tôi giật mình nhìn thấy bao nhiêu tinh chỉnh là cần thiết trong các emacs bán cầu để có được những thứ và chạy. (Vim của tôi bị thay đổi rất nhiều, và tôi đang cố gắng emacs bởi vì được cho là có nhiều khả năng hơn để tinh chỉnh và vì tôi biết một chút lisp.) ' – sjas

+0

rực rỡ, bây giờ tập tin .emacs của tôi hoạt động trở lại với emacs 24.3.1, cảm ơn rất nhiều ! – Bogatyr

0

Tôi có chút ý tưởng tại sao, nhưng khi cài đặt theme solarized trong emacs 24.3.1 trên hệ điều hành MacOS X, tôi thấy rằng nếu tôi đặt dòng init của tôi:

(load-file "~/lisp/color-theme/color-theme.el") 
(load-file "~/lisp/emacs-colors-solarized/color-theme-solarized.el") 
(color-theme-solarized 'dark) 

sau khi tôi tắt thanh cuộn:

(if (featurep 'scroll-bar) 
    (scroll-bar-mode -1)) 

nó làm việc tốt. Cách khác, tôi nhận được lỗi ở trên. Tôi không biết tại sao chức năng color-theme-alist bị ảnh hưởng bởi sự vắng mặt của một thanh cuộn (lời gọi hàm số nguyên sơ để có vẻ như chỉ dành cho XEmacs)

0

Tôi chắc chắn cảm ơn wenjun.yan. Nhưng tôi muốn kiểm tra xem hàm có tồn tại hay không trước khi xác định:

(unless (fboundp 'plist-to-alist) 
(defun plist-to-alist (the-plist) 
    (defun get-tuple-from-plist (the-plist) 
    (when the-plist 
     (cons (car the-plist) (cadr the-plist)))) 
    (let ((alist '())) 
    (while the-plist 
     (add-to-list 'alist (get-tuple-from-plist the-plist)) 
     (setq the-plist (cddr the-plist))) 
    alist))) 
Các vấn đề liên quan