2014-09-13 3 views
7

क्या बैश PS1 चर के साथ Emacs shell prompt (प्रॉम्प्ट स्वयं, शेष शेल स्क्रीन नहीं) में रंगों का उपयोग करना संभव है? मेरा मानना ​​है कि मेरे पास वाक्यविन्यास सही है (उदाहरण के लिए, PS1='[\[email protected]\h \[\e[0;31m\]\W\[\e[m\]]\$ ' - यह शब्द या ansi-term में काम करता है), लेकिन ऐसा लगता है जैसे Emacs comint-highlight-prompt चेहरे को लागू कर रहा है। मैं इसे कुछ रंगों में सेट कर सकता हूं, और यह काम करता है, लेकिन मैं प्रॉम्प्ट के अलग-अलग हिस्सों को अलग-अलग रंगों में सेट करने में सक्षम होना चाहता हूं। मैं शेल ओवर टर्म या ansi-term का उपयोग करना पसंद करता हूं, इसलिए मैं स्विच नहीं करना चाहूंगा।Emacs shell prompt में रंग

धन्यवाद।

उत्तर

6

यह पता चल: comint-highlight-prompt चेहरा minibuffer-prompt से प्राप्त करना है, जो :weight, :foreground और :background की स्थापना की गई थी की गई थी। विरासत को हटाने से चेहरे से ओवरराइड होने से रंगों को PS1 में सेट किया गया। इसे मेरे .emacs फ़ाइल में जोड़ा गया।

(set-face-attribute 'comint-highlight-prompt nil 
        :inherit nil) 

इसके अलावा, M-x customize-group <ret> font-lock-faces इस पता लगाना में मदद मिली।

+0

यह उबंटू 16.04 में काम नहीं करेगा जो Emacs 24.5 का उपयोग Emacs bug https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20084 के कारण करता है जो पहले से ही git: //git.sv.gnu पर तय हो चुका है प्रतिबद्ध होने पर .org/emacs.git 792d44b3c31d2a682607ab8b79ae7d26b7402f41। अपना समाधान काम करने के लिए, "comint-snapshot-last-prompt" को ठीक करने के लिए "comint" के साथ https://www.gnu.org/software/emacs/manual/html_node/elisp/Hooks-for-Loading.html का उपयोग करें और "कॉमेंट-आउटपुट-फ़िल्टर" और "फ़ॉन्ट-लॉक" के साथ "फ़ॉन्ट-लॉक - हटाने-फेस-टेक्स्ट-प्रॉपर्टी" जोड़ने के लिए। –

0

मुझे लगता है कि का उपयोग टर्मिनल रंग और मैक में जानकारी बदलने के लिए, हो सकता है मदद कर सकते हैं:

Cyan="$(tput setaf 6)" 
NC="$(tput sgr0)" # No Color 
export PS1="$Cyan.Where-> \w\n\\$\[$NC\]" 
+0

धन्यवाद, लेकिन यह अभी भी कॉमेंट-हाइलाइट-प्रॉम्प्ट चेहरे पर सेट हो जाता है। मैंने अपने .emacs फ़ाइल में '(सेट-फेस-फोरग्राउंड 'कॉमेंट-हाइलाइट-प्रॉम्प्ट शून्य) करने की कोशिश की है, लेकिन प्रॉम्प्ट अभी भी सभी साइआन पर सेट हो जाता है। –

-1

आप टर्मिनल रंग के लिए खोल एएनएसआई अवधि के बजाय का उपयोग करना होगा।

+1

ठीक है, मेरे पास खोल में टर्मिनल रंग हैं, मैं बस PS1 (या कुछ अन्य विधि) के साथ संकेत के लिए उन्हें नियंत्रित नहीं कर सकता। –

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