你如何让 zsh 中的 RPROMPT 在每次输入时自行更新?

11 shell prompt zsh environment-variables

MyRPROMPT设置为使用vcs_info. 它读RPROMPT=${vcs_info_msg_0_}vcs_info被称为使用precmd()。但是,当我更改目录时,RPROMPT 不会更新。它仅在我再次调用提示(通过 source ~/.zshrc 或 prompt )时才有效,并且不会在 chdir 上更改,除非我再次调用提示。有没有办法改变这种行为?

Den*_*son 23

尝试在赋值时在变量值周围加上单引号以延迟评估:

RPROMPT='${vcs_info_msg_0_}'
Run Code Online (Sandbox Code Playgroud)

  • 这要求`setopt PROMPT_SUBST` 在文件中较早出现。否则,它只会从字面上回显提示。 (4认同)