终端和 iTerm 有不同的 zsh 主题

Ank*_*ana 8 terminal zsh iterm iterm2

问题就在这里。我目前正在agnosterzsh 中使用主题。它在 iTerm 中看起来很棒,但在终端中看起来像这样。

丑陋的终端

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

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

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


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

if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then
    ZSH_THEME="robbyrussell"
else
    ZSH_THEME="agnoster"
fi
Run Code Online (Sandbox Code Playgroud)

the*_*den 5

终端iTerm设置环境变量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
Run Code Online (Sandbox Code Playgroud)

就您所知zsh,我假设您了解一点 shell 脚本,并且可以根据您的代码进行调整。

相关问题:从 shell 获取终端应用程序名称