终端和 iTerm 有不同的 zsh 主题

Have different zsh themes for terminal and iTerm

问题来了。我目前在 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

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