我喜欢 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 中达到相同的结果?
在 中要简单得多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有关完整列表,请参阅“提示序列的扩展”下的 。