Mon RPROMPT
est configuré pour afficher les informations svn à l'aide de vcs_info
. Il se lit comme suit RPROMPT=${vcs_info_msg_0_}
. vcs_info
est appelé en utilisant precmd()
. Cependant, RPROMPT ne se met pas à jour lorsque je change de répertoire. Cela ne fonctionne que si j'appelle à nouveau l'invite (soit par source ~ / .zshrc ou invite) et ne change pas lors de chdir, à moins que j'appelle à nouveau l'invite. Existe-t-il un moyen de modifier ce comportement?
11
setopt PROMPT_SUBST
soit produit plus tôt dans le fichier. Sinon, cela fera écho à l'invite littéralement.L'utilisation d'un guillemet simple pour retarder l'évaluation fonctionne également pour la définition d'alias dynamiques. Voici un alias,
t
utilisé pour attacher un nouveau shell à un processus d'agent ssh existant, qui a été démarré avec un alias appeléssh-start
qui écrit le code shell dans un fichier dans un homedir:Cette définition de
t
est mauvaise car elle entraîne l'ignorance de nouvelles informations provenant d'une nouvelle série dessh-start
. Changer la définition d'aliast
pour être cité individuellement dans mon .zshrc donne un meilleur comportement:Notez l'expansion de la définition de
t
tel que fourni parwhich t
, montrant les effets des guillemets doubles (expansion immédiate sur place des commandes ou des variables d'environnement) par rapport aux guillemets simples (évaluation retardée des commandes et des variables).la source