如何在zsh中获得“彩虹提示”?

时间:2018-03-08 11:55:01

标签: zsh prompt zshrc

我喜欢bash中所谓的“彩虹提示”:

enter image description here

我生产的

export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"

不幸的是,该代码在zsh(这是我的主shell)中不起作用。

如何在zsh中完成相同的结果?

1 个答案:

答案 0 :(得分:3)

它在zsh中更简单,因为shell提供了与终端无关的转义序列来设置颜色。例如:

PS1='%B[%F{red}%n%F{green}@%F{blue}%m %F{purple}%~] %# %b%f'
  • %B / %b - 开启/关闭加粗
  • %F{...} - 设置前景色。对于基本颜色,可以使用颜色名称,对于具有较大调色板的终端,可以使用%F{173}等整数索引。
  • %f - 关闭对前景色的更改(即使用默认颜色)
  • %n - 用户名
  • %m - 主机名最多为.
  • %~ - 目录名称
  • %# - #代表root用户,%代表普通用户(如果您仍然需要$代替%,这只是一般条件序列(!.#.%%),您可以将其替换为(!.#.$)。)

参见man zshmisc,"扩展提示序列"完整列表。