【问题标题】:How do you determine which theme you are on when ZSH_THEME="random"当 ZSH_THEME="random" 时你如何确定你在哪个主题上
【发布时间】:2015-07-26 23:17:37
【问题描述】:

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

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

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

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

【问题讨论】:

  • 根据oh-my-zsh.sh line 85,就是print $RANDOM_THEME
  • 你是对的! .oh-my-zsh/themes/nanotech.zsh-theme ftw!将其添加为答案,以便我接受。
  • 在默认的 omz zshrc 中,您可以在 random 上找到信息:# Set name of the theme to load --- if set to "random", it will # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

标签: zsh zshrc oh-my-zsh


【解决方案1】:

根据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

【讨论】:

  • 是否可以像 zsh_theme 一样自动完成 Random_Theme
【解决方案2】:

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

只需使用:

echo $ZSH_THEME

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

【讨论】:

    【解决方案3】:

    更新@4a1e1的答案。

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

    什么时候

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-17
        • 2018-12-30
        • 1970-01-01
        • 1970-01-01
        • 2021-05-21
        • 1970-01-01
        • 2011-08-10
        • 2011-01-13
        相关资源
        最近更新 更多