MacOS的zsh提示符不显示紫色?

我想让我的 git branch sed -e ‘ 这是我的东西。

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
    # 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 是黄色的。然而,如果我改变颜色 redpurple 要不 whitecyan,我的提示没有显示正确的颜色。

顺便说一下:以下是我的内容。bash:

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

我试过了

  • for i in {1..256}; do print -P "%F{$i}Color : $i"; done; 我的终端机上显示了所有的颜色范围,所以我换成了: red 用一些ANSI代码,但该分支变成了 cyan.
  • \e[0;31m$ \e[0m 用ANSI转义字符,但还是不行。
  • $F{}, $fg{},等等。
  • 当然也要退出终端,源码是 ~/.zshrc 文件,重启电脑。

我缺什么?

解决方案:

有了 %F{...}您可以使用以下之一。

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

  2. 其中一个预定义的名称 black, red, green, yellow, blue, magenta, cyanwhite 分别对应调色板项0到7)。例如:(注意,有些终端可能支持额外的名称)。%F{1} (请注意,有些终端可能支持其他名称。)

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

    如果你的终端允许的话,这可以让你对显示的颜色有更多的控制,因为这两种颜色都是 %F{red}%F{1} 简单地告诉终端显示颜色#1(终端仿真器可以允许设置为用户喜欢的任何颜色)。%F{#ff0000}另一方面,将 始终 显示最亮的红色。

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/3371.html

(0)
上一篇 2022年6月29日 下午4:30
下一篇 2022年6月29日 下午4:31

相关推荐

发表评论

登录后才能评论