为了更好地识别命令行输出的开始和结束,我想改变提示符的颜色,使其与程序输出明显不同。当我使用zsh时,有人能给我一个提示吗?
当前回答
我不认为自动加载-U颜色和&颜色是需要的了,你可以简单地做:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
以达到与FireDude的答案相同的结果。有关更多信息,请参阅ZSH文档。
其他回答
我不认为自动加载-U颜色和&颜色是需要的了,你可以简单地做:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
以达到与FireDude的答案相同的结果。有关更多信息,请参阅ZSH文档。
要根据最后一个命令的退出状态获得颜色提示符,您可以使用以下命令:
PS1='%(?.%F{green}.%F{red})%n@%m:%~%# %f'
只需将这一行添加到~/.zshrc。
文档列出了可能的占位符。
试试我最喜欢的: 放在
~/.zshrc
这条线:
PROMPT='%F{240}%n%F{red}@%F{green}%m:%F{141}%d$ %F{reset}'
不要忘记
source ~/.zshrc
为了测试更改
当然,你可以改变颜色/颜色代码:-)
下面是一个设置红色提示符的例子:
PS1=$'\e[0;31m$ \e[0m'
神奇的是\e[0;31m(打开红色前景)和\e[0m(关闭字符属性)。这些被称为转义序列。不同的转义序列会给出不同的结果,从绝对光标定位到颜色,再到能够更改窗口的标题栏,等等。
有关转义序列的更多信息,请参阅维基百科关于ANSI转义码的条目
把这个放到~/.zshrc:
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
支持颜色: 红色,蓝色,绿色,青色,黄色,品红,黑色和白色(从这个答案),尽管不同的计算机可能有不同的有效选项。
用%{....%}包围颜色代码(以及任何其他不可打印的字符)。这是为了让文本换行正确工作。
此外,下面是如何让它与这里的目录修剪一起工作。
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "