Zsh中的256色提示


14

如何设置我的提示为256色?我在寻找与bash提示等效的方法:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "

1
盯着谁但不赞成的人感到可耻!
phunehehe

export PS1='%{[38;5;24m%};%{[0m%} '正是我想要的
Sardathrion-反对SE滥用2011年

Answers:


9

首先,确保您的终端支持256种颜色,我想您已经拥有了。其次,使用PS1具有正确代码的变量,例如:

export PS1='%{^[[01;38;05;214;48;05;123m%}%m%{^[[0m%} '

这将提示您主机名称为粗体,前景色为214,背景色为123。

请注意,^[通过输入Ctrl+ vCtrl+ 可“输入” [。有关整个属性列表,请参见这篇出色的文章“ 256色事物 ”。


是的,我正在使用urxvt 256颜色启用终端。
Sardathrion-反对SE滥用2011年

如何验证我的终端是否支持256色?例如,gnome-terminal(Ubuntu)是否支持256种颜色?
2013年

使用此脚本(完整文章frexx.de/xterm-256-notes)。gnome-terminal支持256种颜色。
phunehehe 2013年

1
链接的主机已损坏(502错误的网关)。
Pikrass

1
@Pikrass我找不到404。
Totor 2014年

13
export PS1='%F{214}%K{123}%m%k%f'

来自man zshmisc

   %F (%f)
          Start (stop) using a different foreground colour, if supported by the terminal.  The colour may be specified two ways: either as a numeric argument, as normal, or by a sequence in braces following the %F, for example %F{red}.  In the latter case the values allowed are as described for the fg zle_highlight attribute; see  Char
          acter Highlighting in zshzle(1).  This means that numeric colours are allowed in the second format also.

   %K (%k)
          Start (stop) using a different bacKground colour.  The syntax is identical to that for %F and %f.

也可以尝试使用它:

$> print -P '%F{214}%K{123}%m%k%f'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.