MacOS zsh 提示不显示紫色?

MacOS zsh prompt does not show Purple?

我想让我的 git branch 变成紫色。这是我拥有的:

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/()/'
    # git symbolic-ref --short HEAD 2> /dev/null
}

setopt PROMPT_SUBST
PS1='%{%F{green}%}%n@%m:%{%F{yellow}%}%1~%{%F{red}%}$(parse_git_branch)%{%F{none}%}$ '

所以我的 username@machine: 是绿色的,foldername 是黄色的。但是,如果我将颜色 red 更改为 purple 或除 whitecyan 之外的任何其他颜色,我的提示不会显示正确的颜色。

仅供参考:这是我在 bash 中的内容:

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/()/'
}
export PS1="\[3[0;32m\]\u@\h\[3[00m\]:\[3[0;33m\]\W\[3[0;35m\]$(parse_git_branch)\[3[00m\]$ "

我试过:

我错过了什么?

对于 %F{...},您可以使用以下之一:

  1. 与终端调色板中的条目相对应的整数(范围取决于该调色板的大小)。这就是您在 for 循环中看到的(尽管您也可以使用 i=0;请参阅下一点)。例如。 %F{red}

  2. 预定义名称之一 blackredgreenyellowbluemagentacyanwhite(分别对应于调色板条目 0 到 7)。例如。 %F{1}(请注意,某些终端可能支持其他名称。)

  3. 一个 RGB 值,以 # 开头,后跟 3 或 6 个十六进制数字。例如。 %F{#f00} 或 %F{#ff0000}`

    假设您的终端允许,这使您可以更好地控制显示的颜色,因为 %F{red}%F{1} 都只是告诉终端显示颜色 #1(终端仿真器可能允许设置为用户喜欢的任何颜色)。另一方面,%F{#ff0000} 始终 显示最亮的红色阴影。