为终端和iTerm设置不同的zsh主题

8
这是问题所在。我目前在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)也做了同样的操作: ZSH_THEME="fwalch" else ZSH_THEME="agnoster" fi``` - Yury Kirienko
1
我曾经遇到过完全相同的情况,你的解决方法对我有用,谢谢! - bildungsroman
1个回答

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

如果您知道什么是zsh,我假设您至少了解一点shell脚本编程,并且可以将其调整到您的代码中。

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


1
我已经让它工作了。虽然谢谢你的回复,但是我在我的if条件中`"$TERM_PROGRAM"后面缺少了一个空格,这导致了错误。 - Ankit Sultana
没问题,别担心。 - theoden8
顺便提一下,这类问题应该在Superuser和AskDifferent上提问。 - theoden8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接