zshがOS Xで私のプロンプトを誤って一覧表示するのはなぜですか?

zshがOS Xで私のプロンプトを誤って一覧表示するのはなぜですか?

zshのプロンプトがなぜ次のようなものかを調べようとしています。

zshプロンプトの例

(テキスト形式):

\[\]\u\[\] at \[\]\h\[\] in \[\]\w\[\]$(__git_ps1) \[\]$(git_diff)\n\[\]($(date +'1:MikesMBP.local ')) \[\]$\[\]

bashのようにzshを呼び出す前に、私のパスワードとユーザー名を正しくリストしたいと思います。これは私の.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

以前のシェルから変数PS1をエクスポートしたため、zshはそれを継承してプロンプトを表示するために使用します。これがPS *のようなシェルパラメータをエクスポートしない理由です。 PS1 をエクスポートしない場合、zsh は .zshrc で PS1 を変更するか、プロンプトシステムを使用するまでデフォルトのプロンプトを使用します。

答え2

バッシュを使う\[そして\]プロンプトで印刷できない部分を表示します。

同じ目的%{でzshを使用してください。%}

これxterm マニュアルこれについて言及した部分があります。

関連情報