【发布时间】:2021-08-21 11:47:44
【问题描述】:
我正在使用 oh-my-zsh。我的主题文件如下所示:
PROMPT="${AWS_PROFILE}%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
它基于一个流行的主题。我唯一添加的是${AWS_PROFILE}。
提示确实按预期显示了我的 AWS 配置文件。但即使我的环境变量改变了提示也不会改变。这不符合我的预期。如果我运行source ~/.zshrc,它确实会改变。
当我的环境变量改变时,我可以进行提示更新吗?
【问题讨论】:
-
我看了一下 spaceship-prompt 如何实现这一点,似乎他们使用一些 zsh 钩子在每个命令之前重新运行东西。例如,这里是他们如何设置 preexec 和 precmd 钩子:github.com/spaceship-prompt/spaceship-prompt/blob/master/…
-
谢谢!我不知道宇宙飞船的提示。我去了 ahaid 并切换到那个。
-
AWS_PROFILE在您定义PROMPT时立即展开,因为您使用了双引号。使用单引号,或者考虑使用 precmd 挂钩来设置PROMPT的值。 -
@user1283776 如果您不再需要回答您的问题,请关闭它,使其不再出现在未回答问题列表中。 :)
-
好的,我关闭了它。我需要说明一个动机,但没有一个选项适合,所以我还是选择了一个。
标签: environment-variables zsh oh-my-zsh