【发布时间】:2021-07-30 11:27:09
【问题描述】:
问题
我在 mac OS catalina 上安装了我的 zsh,并使用 iTerm2 作为终端。我正在使用robbyrussell.zsh-theme 主题并对其进行了修改以在提示符中打印 git 电子邮件(更多信息here)。我已将robbyrussell.zsh-theme 修改为:
PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT+=' %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info)'
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[blue]%}$(git_current_user_email)["
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}] %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}] %{$fg[green]%}✔"
当我移动到 git 目录时,它不会从本地 .git/config 或全球 ~/.git/config 接收用户电子邮件。
研究完成:
我浏览了多篇 * 和其他文章并尝试了很多东西但没有成功。
对我有用的方法是创建别名以在两个电子邮件地址之间切换:
home='git config user.email "<homeemail>" && source ~/.zshrc'
work='git config user.email "<workemail>" && source ~/.zshrc'
但我必须一直执行这些命令才能让提示接收电子邮件,即使它是在本地 git config 中设置的。
当我们 cd 到 repo 时,对于 zsh 提示直接读取 git 用户电子邮件需要做什么,有人可以帮忙吗?
【问题讨论】:
-
我刚刚意识到,当不在 git 存储库中时,我的答案并没有真正起作用。我已经更新了。
-
即使不在 git repo 中,您的回答对我也很有效。但只需要进行小的格式更改即可将
[保留在ZSH_THEME_GIT_PROMPT_PREFIX中,而不是将其带到PROMPT