当 ZSH_THEME="random" 时,你如何确定你在哪个主题上

How do you determine which theme you are on when ZSH_THEME="random"

我找到了一个我喜欢的主题,但只是在命令行上执行了一个程序,输出很多,所以我不知道当前主题的名称!

这是我的 .zshrc 的相关部分:

# Set name of the theme to load.
...
ZSH_THEME="random"

有没有办法确定我在哪个主题上?

根据oh-my-zsh.sh L81-87

if [ "$ZSH_THEME" = "random" ]; then
  themes=($ZSH/themes/*zsh-theme)
  N=${#themes[@]}
  ((N=(RANDOM%N)+1))
  RANDOM_THEME=${themes[$N]}
  source "$RANDOM_THEME"
  echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."

因此您应该能够使用

打印随机主题的路径
print $RANDOM_THEME

更新@4a1e1 的答案。

当前版本的 oh-my-zsh 已经实现了第二个选项 ZSH_THEME_RANDOM_CANDIDATES 可以协同工作 ZSH_THEME

什么时候

    ZSH_THEME="random"
    ZSH_THEME_RANDOM_CANDIDATES=("robbyrussell" "rkj-repos")

对于每个新的终端打开,只会应用 robbyrussell 或 rkj-repos 主题。

应其开发团队的要求,添加了一个新命令来支持此功能:

只需使用:

echo $ZSH_THEME

响应将是用户当前使用的主题。

您可以使用 prompt -c 打印当前主题。

注意:我不确定这是哪个版本可用,我的是zsh 5.8