Vor kurzem gebe ich einen Versuch auf oh mein zsh, alles sieht gut aus, bis ich versuchen virtualevn und virtualenvwrapper. Wenn ich einen virtualenv (z-Test), auf normalen bash aktivieren, werde ich die virtualenv Namen wie sehen:virtualenv name nicht in zsh prompt
(test)[email protected]:
Aber wenn ich zsh schaltet, kann ich nicht virtualenv Namen. Obwohl ich noch virtualenv und virtualenvwrapper in Plugins von oh my zsh hinzufügen. Ich habe auch die activate Datei meines virtualenv, es enthält:
f [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
fi
export PS1
fi
Ist es, weil der Vergleich [ "x" = x!] Return true?
Aktualisiert: Ich versuchte $ PS1 in activate Datei Echo und bekam dies:
(test) %{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}%{$fg[cyan]%}⇒%{$reset_color%}
Es scheint, der $ PS1 richtig ist, aber wenn ich echo $ PS1 im Terminal, die (Test) ist weg. Es scheint, dass die $ PS1 von etwas anderem überschrieben wird!
'[ "x"= x!]' Immer wieder _false_; es vergleicht das wörtliche "x" mit sich selbst. – mklement0
dann, warum der Basisname nicht auf $ PS1 prepend? – Bent
Startet die Eingabeaufforderung mit '()'? Beachten Sie, dass Sie brauchen nicht '\' -escape die '„'Zeichen. In' \“$ VIRTUAL_ENV \" '(obwohl es nicht schaden sollte). – mklement0