2012-07-27 8 views
5

मैं 23.1, 23.4 के तहत अपनी स्टाइल फ़ाइल का उपयोग कर सकता हूं, लेकिन जब मैं Emacs को 24.1 पर अपडेट करता हूं, तो मैं पुरानी शैली फ़ाइलों का उपयोग नहीं कर सकता। उदाहरण के लिए, मेरी स्टाइल फाइलों में से एक color-theme-arjen.el है। मैं Emacs 24.1 के तहत पुरानी थीम शैली फ़ाइल का उपयोग क्यों नहीं कर सकता?

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

मेरी elisp फ़ाइल में, मैं रंग विषय लोड करने के लिए कोड निम्न का उपयोग करें:: यहाँ लिंक है

(लोड फ़ाइल "~/Emacs/साइट-तुतलाना/रंग-विषय/master_color-विषय-arjen.el ") (रंग-विषय-अर्जेन)

मैं नहीं जानता कि क्यों रंग विषय Emacs 23.1 & 23.4 के तहत काम करता है लेकिन सिर्फ wor नहीं है Emacs 24.1 के तहत के।

Emacs फ़ाइल लोड किया जाता है, Emacs त्रुटि निम्न देता है:

प्रतीक के समारोह परिभाषा शून्य है: plist करने वाली alist

अगर मैं कोड ऊपर uncomment और शैली लोड नहीं फ़ाइल, त्रुटि खारिज कर दिया गया है।

क्या कोई जानता है कि ऐसा क्यों होता है? या मैं इसे कैसे डीबग कर सकता हूं?

उत्तर

3

कलर थीम सामग्री को 24 में भारी रूप से संशोधित किया गया था, वहां एक रंग थीम पैकेज शामिल है जिसमें emacs (M-x customize-themes देखें), और जहां तक ​​मुझे पता है कि पुराने विषयों के टूटने की उम्मीद है।

marmalade से रंग थीम पैकेज भी काम करता है।

आपको शायद रंग-थीम-आर्जेन के लिए एक बग रिपोर्ट खोलनी चाहिए।

22

हाँ, मुझे यह बग भी मिला। ऐसा लगता है कि Emacs 24 '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)) 

आशा है कि यह मदद करता है:)

+0

बहुत बहुत धन्यवाद!एक vim backgroud से आ रहा है, मैं चौंकाने वाला हूँ देख रहा हूँ कि emacs गोलार्ध में चीजों को पाने और चलाने के लिए कितनी tweaking की जरूरत है। (मेरा विम भारी रूप से संशोधित है, और मैं emacs की कोशिश कर रहा हूं क्योंकि माना जाता है कि tweaking के लिए और भी संभावनाएं मौजूद हैं और क्योंकि मुझे थोड़ा lisp पता है।) ' – sjas

+0

शानदार, अब मेरी .emacs फ़ाइल emacs 24.3.1 के साथ फिर से काम करता है, बहुत बहुत धन्यवाद ! – Bogatyr

0

मैं थोड़ा विचार क्यों है, लेकिन जब MacOS एक्स पर Emacs 24.3.1 में solarized विषय स्थापित करने, मैंने पाया कि अगर मैं अपने init लाइनें डाल:

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

के बाद मैं स्क्रॉल बार बंद कर दिया:

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

यह ठीक काम किया। दूसरी तरफ, मुझे उपरोक्त त्रुटि मिलती है। मुझे नहीं पता कि स्क्रॉल बार की अनुपस्थिति से रंग-थीम-एलीस्ट फ़ंक्शन प्रभावित क्यों होता है (प्लिस्ट-टू-एलीस्ट फ़ंक्शन कॉल केवल XEmacs के लिए प्रतीत होता है)

0

मैं निश्चित रूप से धन्यवाद wenjun.yan। लेकिन मैं यह जांचना चाहता हूं कि फ़ंक्शन इसे परिभाषित करने से पहले मौजूद है या नहीं:

(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))) 
संबंधित मुद्दे