【发布时间】:2020-04-27 00:02:32
【问题描述】:
我正在尝试将我的git branch 设为紫色。这是我所拥有的:
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 是黄色的。但是,如果我将颜色 red 更改为 purple 或除 white 或 cyan 之外的任何其他颜色,我的提示不会显示正确的颜色。
仅供参考:这是我在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;,我的终端显示所有颜色范围,所以我用一些 ANSI 代码替换了red,但分支变成了cyan。 -
\e[0;31m$ \e[0m带有 ANSI 转义字符,但它仍然不起作用。 -
$F{}、$fg{}等 - 当然要退出终端,获取
~/.zshrc文件,重新启动计算机。
我错过了什么?
【问题讨论】:
-
parse_git_branch的输出是什么?它是否可能包含显式设置青色的代码?%}的目的是什么?我没有在提示配置中使用它。 -
代码中可以看到parse_git_branch()函数的输出。它只显示 git 分支。不,它不会像我在
bash中那样设置颜色。 -
purple不是已知颜色;请改用magenta。 -
唯一的预定义颜色名称是黑色、红色、绿色、黄色、蓝色、洋红色、青色和白色。对于其他颜色,您需要指定颜色编号(对应于终端的调色板)或 RGB 三元组。