My RPROMPT
ist so eingestellt, dass svn-Informationen mit angezeigt werden vcs_info
. Es liest RPROMPT=${vcs_info_msg_0_}
. vcs_info
heißt using precmd()
. RPROMPT wird jedoch nicht aktualisiert, wenn ich Verzeichnisse wechsle. Es funktioniert nur, wenn ich die Eingabeaufforderung erneut aufrufe (entweder über source ~ / .zshrc oder prompt) und sich bei chdir nicht ändert, es sei denn, ich rufe die Eingabeaufforderung erneut auf. Gibt es eine Möglichkeit, dieses Verhalten zu ändern?
11
setopt PROMPT_SUBST
früher in der Datei aufgetreten ist. Andernfalls wird die Eingabeaufforderung nur buchstäblich wiedergegeben.Die Verwendung eines einfachen Anführungszeichens zur Verzögerung der Auswertung funktioniert auch zum Definieren dynamischer Aliase. Hier ist ein Alias, der
t
verwendet wird, um eine neue Shell an einen vorhandenen SSH-Agentenprozess anzuhängen, der mit einem Alias namens aufgerufen wurdessh-start
, der Shell-Code in eine Datei in einem Homedir schreibt:Diese Definition von
t
ist schlecht, da dadurch neue Informationen aus einem neuen Lauf vonssh-start
ignoriert werden. Das Ändern der Alias-Definition vont
, um in meiner .zshrc einzeln zitiert zu werden, führt zu einem viel besseren Verhalten:Beachten Sie die Erweiterung der Definition von
t
wie angegebenwhich t
, die die Auswirkungen von doppelten Anführungszeichen (sofortige direkte Erweiterung von Befehlen oder Umgebungsvariablen) im Vergleich zu einfachen Anführungszeichen (verzögerte Auswertung von Befehlen und Variablen) zeigt.quelle