为终端和iTerm提供不同的zsh主题

时间:2015-07-17 07:03:35

标签: terminal zsh iterm iterm2

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

Ugly terminal

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

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

  2. 进行一些修改,以使agnoster在终端看起来很好。

  3. 我开始工作了,显然我在if条件下丢失了一个空格,这使得它完全没用。以下是我在zshrc

    中的显示方式
    if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then
        ZSH_THEME="robbyrussell"
    else
        ZSH_THEME="agnoster"
    fi
    

1 个答案:

答案 0 :(得分:3)

终端 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

据您所知,zsh是什么,我假设您知道最少的shell脚本,可以根据您的代码进行调整。

相关问题:Get terminal application name from shell