2012-10-17 11 views
8

इस सवाल के अंदर उत्पादन पर मैक ओएस एक्सMacVim और का उपयोग कर ZSH बारे में है।ZSH - सही शैल इनपुट/विम/MacVim

मैं जेडएसएच खोल का उपयोग कर रहा हूं और इसे रंगीन प्रॉम्प्ट का उपयोग करने के लिए कॉन्फ़िगर किया गया है, और सब कुछ जेडएसएच के साथ अच्छी तरह से काम करता है।

हालांकि, जब मैं विम साथ मेरा डिफ़ॉल्ट (usin: set shell=zsh\ -li) होने के लिए इस खोल निर्धारित करते हैं, vim मेरा पीछा प्रतीक जब inputting या पाठ outputting देता है:

[35mnikhgupta[00m at [[33mMacbookPro[00m in [01;32m~[00m [00m 

जबकि यह बस कहना चाहिए:

nikhgupta at MacbookPro in ~ 

जब मैं कुछ पाठ इनपुट करता हूं, तो मुझे वही अजीब प्रतीकों मिलते हैं, शायद इसलिए कि मैं अपने जेडएसएच खोल के लिए फ्लाई सिंटैक्स पर प्रकाश डाल रहा हूं। मैंने यह अनुमान लगाया है कि ये प्रतीक रंग कोड हैं?

क्या कोई मेरी मदद कर सकता है कि इन रंग कोडों को कैसे छोड़ें और केवल विम खोल में टेक्स्ट आउटपुट करें?

सादर

+0

है आपके _inside_ Vim को हाइलाइट करते हुए रंगीन वाक्यविन्यास का उपयोग करने का लक्ष्य? – jahroy

+0

नहीं .. इसके बजाय, मैं विम के अंदर खोल कमांड (': sh') के लिए सभी रंगीन वाक्यविन्यास (जो मेरे लॉगिन जेडएसएच खोल में मौजूद है) को हटाना चाहता हूं। – Stoic

+0

जीयूआई विम (मैकवीम) या सीएलआई विम? जीयूआई विम में ऐसा करने का कोई तरीका नहीं है जिसमें रंगों को प्रदर्शित करने में सक्षम एक अंतर्निहित खोल नहीं है और सीएलआई विम में इसे क्यों तोड़ना चाहिए। – romainl

उत्तर

2

जब आप MacVim से :shell करते हैं, $TERM का मूल्य dumb को तैयार है। आप इसका उपयोग अपने ZSH पर्यावरण को तदनुसार सेट अप करने के लिए कर सकते हैं।

मैं zsh से परिचित नहीं हूं, हालांकि, आप सही सशर्त ब्लॉक लिखने के लिए स्वयं पर होंगे। bash में, यह है कि ऐसा दिखाई देगा:

if [ $TERM == 'dumb' ]; 
    then 
    echo 'Special setup for MacVim' 
fi 

वास्तव में, इस मुद्दे मुझे थोड़ी देर तो मैं बस अपने खुद के इस्तेमाल के लिए इस लिखा है के लिए बंद bugged (bash में):

if [ $TERM == 'dumb' ]; 
    then 
    # no colors 
    export PS1="\n\w\n\u $ " 
    else 
    # colors 
    export PS1="\n\[\033[32m\]\w\n\[\033[1;31m\]\[\033[1;36m\]\u\[\033[0m\] $ \[\033[0m\]" 
fi