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

NVa*_*han 1 zsh prompt zshrc

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

在此输入图像描述

我这样制作:

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 中达到相同的结果?

che*_*ner 5

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

PS1='%B[%F{red}%n%F{green}@%F{blue}%m %F{purple}%~] %# %b%f'
Run Code Online (Sandbox Code Playgroud)
  • %B/ %b- 打开/关闭粗体
  • %F{...}- 设置前景色。您可以使用基本颜色的颜色名称,或使用整数索引(例如%F{173}具有较大调色板的终端)。
  • %f- 关闭对前景色的更改(即使用默认颜色)
  • %n- 用户名
  • %m- 主机名到第一个.
  • %~- 目录名称
  • %#-#对于root,%对于普通用户(如果您仍然想要$代替%,这只是一般条件序列 的快捷方式%(!.#.%%),您可以将其替换为%(!.#.$),如 Shell 状态下所示man zshmisc。)

man zshmisc有关完整列表,请参阅“提示序列的扩展”下的 。