【问题标题】:Have different zsh themes for terminal and iTerm终端和 iTerm 有不同的 zsh 主题
【发布时间】:2015-10-06 20:08:01
【问题描述】:

这就是问题所在。我目前在 zsh 中使用agnoster 主题。它在 iTerm 中看起来很棒,但在终端中看起来像这样。

换句话说,它看起来真的很丑。所以我对两种解决方案感兴趣:

  1. 终端和 iTerm 有不同的 zsh 主题。所以我可以为 iTerm 使用 agnoster,为终端使用其他一些主题。 (例如:robbyrussell 在终端中看起来不错,所以我希望 iTerm 使用 agnoster,终端使用 robbyrussell

  2. 进行一些修改,使agnoster 在终端中看起来不错。


我让它工作了,显然我在 if 条件中缺少一个空格,这使它完全无用。这是它在我的zshrc中的样子

if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then
    ZSH_THEME="robbyrussell"
else
    ZSH_THEME="agnoster"
fi

【问题讨论】:

  • 非常感谢!我对 Jetbrains 终端(pyCharmidea)做了同样的事情:if [ "$TERMINAL_EMULATOR" = "JetBrains-JediTerm" ]; then ZSH_THEME="fwalch" else ZSH_THEME="agnoster" fi
  • 我的情况完全相同,您的情况对我有用,谢谢!

标签: terminal zsh iterm iterm2


【解决方案1】:

TerminaliTerm设置环境变量TERM_PROGRAM

Terminal : Apple_Terminal

iTerm : iTerm

如果您使用PathFinder 的终端,TERM_PROGRAM 未设置。

打开您的 oh-my-zsh 配置并使用以下构造:

OHMYTHEMES=(
    # your favourite themes
)


[ "$TERM_PROGRAM" = "iTerm" ] && OHMYTHEMES+=agnoster

ZSH_THEME=${OHMYTHEMES[(($RANDOM % ${#OHMYTHEMES} + 1))]} # chooses theme among your favourite randomly

据您所知,zsh 是什么,我假设您对 shell 脚本有所了解,并且可以根据您的代码进行调整。

相关问题:Get terminal application name from shell

【讨论】:

  • 我已经让它工作了。不过感谢您的回复。在导致错误的 if 条件中,我在“$TERM_PROGRAM”之后缺少一个空格。
  • 没问题,别担心。
  • 顺便说一句,这样的问题是针对超级用户的,并且问的不同。
猜你喜欢
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 2018-09-02
  • 2021-02-26
  • 1970-01-01
  • 2017-11-05
  • 2021-01-13
  • 2020-03-05
相关资源
最近更新 更多