gpt4 book ai didi

zshrc - PS1中的zsh随机颜色

转载 作者:行者123 更新时间:2023-12-01 22:50:10 27 4
gpt4 key购买 nike

我的.bashrc PS1(删节版)是

\u\[\e[01;3$(($RANDOM % 8))m\]@\h \w $'

根据 bash 的工作方式,它会在每个命令后插入随机颜色,因此 @ 每次都是不同的颜色(至少在 31-37 范围内)。

但是,我无法在 zsh 中做类似的事情。 $'' 语法不允许命令替换,并且连接也不起作用:

$'\e[01;3'$(($RANDOM % 8))
# The \e[01;3 character is printed first, then the random number

使用引号 " 也不起作用;它只是打印出文字 \e...

我知道 zsh 也有一些内置的文本颜色,比如 %{$fg[red]%} 我可以以某种方式从数组中选择一种随机颜色,但问题是它需要由 PS1 随机选择,而不是在启动时随机选择,否则随机选择只会进行一次。

有什么办法可以在 zsh 的 PS1 中插入一个随机数来实现这一点?

最佳答案

您可以使用 precmd hook这将在每个提示之前进行评估:

randomise_prompt_colour () {
PS1="%n%B%F{$((RANDOM % 8))}@%m %~ %(!.#.\$) "
}

add-zsh-hook precmd randomise_prompt_colour

关于zshrc - PS1中的zsh随机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com