2011-04-08 9 views
5

मैं उबंटू 11.04 से Emacs 23.2.1 का उपयोग कर रहा हूं। मैंने purcell's port of the Solarized color-theme स्थापित किया है, लेकिन मैं अपने पायथन बफर को the Solarized Vim screenshot की तरह दिखने के लिए कुछ चेहरों को समायोजित करना चाहता हूं। रंग-थीम को संपादित करना इतना आसान है ताकि मेरे पसंदीदा रंग हमेशा उपयोग किए जाते हैं, लेकिन इससे उन्हें सी मोड में भी बदल दिया जाएगा और मैं इससे बचना चाहता हूं।क्या मैं प्रति रंग रंग-थीम में बदलाव कर सकता हूं?

विशेष रूप से, यहां निर्मित वाली चेहरा के लिए डिफ़ॉल्ट सेटिंग है: - और केवल अजगर मोड -

(font-lock-builtin-face ((t (:foreground ,green)))) 

अजगर मोड में मैं बजाय इसका उपयोग करना चाहते हैं:

(font-lock-builtin-face ((t (:foreground ,blue)))) 

मैं डी आदर्श रूप से कलर-थीम परिभाषा में कुछ तर्कों को पैच करके इस बदलाव को करना चाहते हैं ताकि मैं अपने समायोजन को एक नोट के साथ अपस्ट्रीम भेज सकूं, "यह परिवर्तन केवल पायथन हाइलाइटिंग"। यह विफल होने पर, मैं अपने init.el में कुछ के लिए व्यवस्थित होगा। हालांकि, यह मुख्य रंग-विषय के साथ पैक किया गया है, हालांकि।

क्या यह संभव है? उसको खरोंचो। यह Emacs है; मैं जानता हूं यह संभव है! लेकिन मैं यह कैसे कर सकता हूँ?

उत्तर

5

यह Face Remapping का उपयोग करना संभव होना चाहिए। भले ही आप रंग-विषय परिभाषा पैच करने के लिए पसंद करते हैं, मैं अपने init.el फ़ाइल में निम्न लाइनों की तरह कुछ डालने के लिए लोगों का तर्क था, के रूप में यह इस तरह के काम करने के लिए एक अधिक "मानक" तरीका है:

(add-hook 'python-mode-hook 'remap-builtin-face-blue) 

(defun remap-builtin-face-blue() 
    (let ((blue "#2075c7")) 
    (set (make-local-variable 'face-remapping-alist) 
     `((font-lock-builtin-face :foreground ,blue))))) 
+0

कि बहुत अच्छी तरह से काम करता है! धन्यवाद। कलर-थीम के साथ इसे एकीकृत करने का लक्ष्य यह है कि यह थीम को इंस्टॉल करने वाले किसी भी व्यक्ति के लिए "बॉक्स से बाहर" काम कर सकता है, बिना उन्हें init.el को संशोधित करने की आवश्यकता के। यदि यह व्यवहार्य नहीं है, हालांकि, कम से कम यह काम पूरा हो जाता है। –

+0

@ किर्क: अच्छा बिंदु, लेकिन सभी इस तरह के फ़ॉन्ट को बदलना नहीं चाहते हैं। इसलिए आपको थीम के लिए एक अनुकूलन विकल्प या कुछ भी जोड़ना होगा, और फिर यह "बॉक्स से बाहर" नहीं होगा। मुझे लगता है कि आपके 'init.el' में सामान जोड़ना एक बहुत ही आम बात है, और Emacs उपयोगकर्ता इसके साथ परिचित हैं। आखिरकार, यह सिर्फ कॉपी और पेस्ट है। – Thomas

+0

सच है, और शायद केवल एक रीडमे समेत सबसे अच्छा तरीका हो सकता है। –

संबंधित मुद्दे

 संबंधित मुद्दे