当ZSH_THEME ="随机"时,如何确定您所处的主题

Nar*_*pai 24 zsh zshrc oh-my-zsh

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

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

# Set name of the theme to load.
...
ZSH_THEME="random"
Run Code Online (Sandbox Code Playgroud)

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

4ae*_*1e1 40

根据oh-my-zsh.shL81-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..."
Run Code Online (Sandbox Code Playgroud)

因此,您应该能够打印随机主题的路径

print $RANDOM_THEME
Run Code Online (Sandbox Code Playgroud)

  • 好的,`echo`而不是`print`也有效 (2认同)

Maj*_*aei 14

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

只需使用:

echo $ZSH_THEME
Run Code Online (Sandbox Code Playgroud)

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


小智 7

更新@4a1e1的答案。

当前版本的 oh-my-zsh 已经实现了与 ZSH_THEME 一起工作的第二个选项 ZSH_THEME_RANDOM_CANDIDATES

什么时候

    ZSH_THEME="random"
    ZSH_THEME_RANDOM_CANDIDATES=("robbyrussell" "rkj-repos")
Run Code Online (Sandbox Code Playgroud)

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


小智 5

在更新版本中,您可以使用 列出当前主题omz theme list。它将列出当前主题以及 oh-my-zsh 的可用主题。

io :: ~ % omz theme list                                                                                                                                                                  
Current theme: flazz

Custom themes:
example

Built-in themes:
3den                    Soliah                  adben                   af-magic                afowler                 agnoster                alanpeabody
amuse                   apple                   arrow                   aussiegeek              avit                    awesomepanda            bira
Run Code Online (Sandbox Code Playgroud)