为了更好地识别命令行输出的开始和结束,我想改变提示符的颜色,使其与程序输出明显不同。当我使用zsh时,有人能给我一个提示吗?
当前回答
为了不浪费终端中特殊字符对信息片段的空间,可以使用多种颜色来区分信息。
如。为了达到这个理想的效果:
您可以对提示符执行以下操作:
PROMPT='%F{magenta}${PWD/#$HOME/~} %F{green}${vcs_info_msg_0_} %F{cyan}$%F{reset_color} '
它的工作方式是每次你使用$F{myColor}设置一个颜色时,从那一点开始的颜色将保持不变。在结尾添加%{reset_color}是很重要的,这样输入文本就会回到原来的颜色(或者如果您愿意,可以将其设置为其他颜色)。
其他回答
我发现,用zsh5 (Debian Jessie上的默认值),所有这些解决方案都有效:
“\ e[00美元 fg美元(白色) 美元fg{白}
现在,他们有一个问题:他们会移动光标,导致在标签(自动完成)时难看的贴花。解决方案是简单地用%{FOOBAR%}包围转义序列。我花了好长时间才想明白。 对于第二和第三个解决方案加载颜色模块是强制性的。 为了保持第一个解决方案的可读性,只需为所使用的颜色定义变量。
试试我最喜欢的: 放在
~/.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转义码的条目
我不认为自动加载-U颜色和&颜色是需要的了,你可以简单地做:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
以达到与FireDude的答案相同的结果。有关更多信息,请参阅ZSH文档。
要根据最后一个命令的退出状态获得颜色提示符,您可以使用以下命令:
PS1='%(?.%F{green}.%F{red})%n@%m:%~%# %f'
只需将这一行添加到~/.zshrc。
文档列出了可能的占位符。
推荐文章
- 如何在新的材质主题中改变背面箭头的颜色?
- 我如何改变我的提示在zsh的颜色(不同于正常的文本)?
- 如何改变循环进度指示器的颜色
- 从输出中删除颜色
- 寻找ALT+LeftArrowKey解决方案在zsh
- 如何比较两种颜色的相似/不同
- 用JavaScript创建一个基于字符串的十六进制颜色
- 我如何获得iOS 7默认的蓝色编程?
- 如何在一张图中为不同的地块得到不同颜色的线条
- 在Android上理解颜色(6个字符)
- 如何将一个颜色整数转换为十六进制字符串在Android?
- [nyae]在Zsh中是什么意思?
- HSL到RGB的颜色转换
- 如何自动生成N“不同”的颜色?
- 从matplotlib中的颜色映射中获取单个颜色