terminal - 终端和 iTerm 有不同的 zsh 主题

标签 terminal zsh iterm iterm2

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

Ugly terminal

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

  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

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

关于terminal - 终端和 iTerm 有不同的 zsh 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31470132/

相关文章:

python - 终止简单的 python 服务器不会用 ctrl + C 关闭

node.js - 如何执行并行命令

vim - "M-"iTerm2/Terminal 上 vim 中的绑定(bind)不起作用

bash - "Filename argument required"从 bash_profile 运行 shell 命令时出现警告

bash - 在终端(bash)中粘贴正确的 if 语句(缩进为 '\t' )给出语法错误

bash - 从包含路径的变量中删除当前目录

tmux - byobu/tmux 中的状态更新导致鼠标选择丢失

terminal - ZSH iterm2增加行数历史记录

java - 设置 Elasticsearch 问题

vim - 将缓冲区发送到Vim 8中正在运行的终端窗口