2012-10-17 7 views
8

Diese Frage ist über die Verwendung von MacVim und ZSH auf Mac OS X.ZSH - Korrekte Shell Eingabe/Ausgabe innerhalb Vim/MacVim

Ich verwende ZSH-Shell und es ist konfiguriert, farbige Eingabeaufforderung zu verwenden, und alles funktioniert gut mit ZSH selbst.

Allerdings, wenn ich diese Schale gesetzt mein Standard mit Vim (usin: set shell=zsh\ -li) zu sein, gibt vim mir folgende Symbole, wenn oder Text ausgibt Eingabe:

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

während es sollte einfach sagen:

Wenn ich etwas Text eingeben, bekomme ich die gleichen seltsamen Symbole, wahrscheinlich, weil ich im laufenden Betrieb Syntaxhervorhebung für meine ZSH-Shell verwende. Ich habe abgeleitet, dass diese Symbole Farbcodes sind?

Kann mir jemand helfen, diese Farbcodes zu verwerfen und einfach Text in der Vim-Shell auszugeben?

Grüße

+0

Ist Ihr Ziel, die farbige Syntaxhervorhebung _inside_ Vim zu verwenden? – jahroy

+0

Nein. Stattdessen möchte ich alle farbigen Syntax (die in meiner Login-ZSH-Shell vorhanden ist) für den Shell-Befehl (': sh') in Vim entfernen. – Stoic

+0

GUI Vim (MacVim) oder CLI Vim? Es gibt keine Möglichkeit, dies in GUI Vim zu tun, die keine eingebaute Shell hat, die Farben anzeigen kann und keinen Grund, warum sie in CLI Vim brechen sollte. – romainl

Antwort

2

Wenn Sie :shell von MacVim tun, wird der Wert von $TERM-dumb gesetzt. Damit könnten Sie Ihre ZSH-Umgebung entsprechend einrichten.

Ich bin nicht vertraut mit zsh, aber Sie werden auf eigene Faust für das Schreiben der richtigen bedingten Block. In bash, würde es so aussehen:

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

Eigentlich dieses Problem mich für eine Weile abgehört ab, so habe ich nur für meine eigenen Gebrauch geschrieben (in 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