我试图找出为什么 zsh 的提示符如下所示:
(以文字形式):
\[\]\u\[\] at \[\]\h\[\] in \[\]\w\[\]$(__git_ps1) \[\]$(git_diff)\n\[\]($(date +'1:MikesMBP.local ')) \[\]$\[\]
我希望它在调用 zsh 之前正常列出我的密码和用户名,就像在 bash 中那样。这是我的 .zshrc:
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory autocd beep extendedglob nomatch notify
bindkey -v
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/Users/mike/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
这只是第一次启动 zsh 时创建的标准配置。我尝试过内置的 OS X zsh 和 homebrew 的 zsh,它们都会产生相同的错误。您看到会导致这种情况的原因吗?
答案1
您在上一个 shell 中导出了变量 PS1,因此 zsh 继承它并使用该变量来显示提示符。这就是为什么您不应该导出像 PS* 这样的 shell 参数,如果不导出 PS1,zsh 将使用其默认提示符,直到您在 .zshrc 中更改 PS1 或使用提示符系统。