My RPROMPT
está configurado para mostrar información svn usando vcs_info
. Se lee RPROMPT=${vcs_info_msg_0_}
. vcs_info
se llama usando precmd()
. Sin embargo, RPROMPT no se actualiza cuando cambio los directorios. Funciona solo si invoco el indicador nuevamente (ya sea por fuente ~ / .zshrc o indicador) y no cambia en chdir, a menos que invoque el indicador nuevamente. ¿Hay alguna forma de cambiar este comportamiento?
11
setopt PROMPT_SUBST
haya ocurrido anteriormente en el archivo. De lo contrario, solo hará eco del aviso literalmente.El uso de una comilla simple para retrasar la evaluación también funciona para definir alias dinámicos. Aquí hay un alias,
t
utilizado para adjuntar un nuevo shell a un proceso de agente ssh existente, que se inició con un alias llamadossh-start
que escribe el código de shell en un archivo en un homedir:Esa definición de
t
es mala porque hacessh-start
que se ignore la información nueva de una nueva ejecución . Cambiar la definición de alias det
ser citado individualmente en mi .zshrc proporciona un comportamiento mucho mejor:Observe la expansión de la definición de
t
como se proporcionawhich t
, mostrando los efectos de las comillas dobles (expansión inmediata en el lugar de comandos o variables de entorno) frente a comillas simples (evaluación retrasada de comandos y variables).fuente