25

我试图弄清楚为什么我的 oh-my-zsh 主题不能正常工作。颜色正确显示,但背景保持白色(带有黑色文本)。下面是我的 /.zshrc 文件和当前路径变量:

    # Path to your oh-my-zsh configuration.
    ZSH=$HOME/.oh-my-zsh

    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"

    # Set name of the theme to load.
    # Look in ~/.oh-my-zsh/themes/
    # Optionally, if you set this to "random", it'll load a random theme each
    # time that oh-my-zsh is loaded.
    export ZSH_THEME="robbyrussell"

    # Example aliases
    # alias zshconfig="mate ~/.zshrc" 
    # alias ohmyzsh="mate ~/.oh-my-zsh"

    # Set to this to use case-sensitive completion
    # CASE_SENSITIVE="true"

    # Comment this out to disable weekly auto-update checks
    # DISABLE_AUTO_UPDATE="true"

    # Uncomment following line if you want to disable colors in ls
    #DISABLE_LS_COLORS="true"

    # Uncomment following line if you want to disable autosetting terminal title.
    # DISABLE_AUTO_TITLE="true"

    # Uncomment following line if you want red dots to be displayed while waiting for   completion
    # COMPLETION_WAITING_DOTS="true"

    # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
    # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    plugins=(git rails ruby brew)

    source $ZSH/oh-my-zsh.sh

    # Customize to your needs...
    autoload -U colors
    colors

这是 $PATH :

    ➜  ~  echo $PATH
    /Users/natascha/.rbenv/shims:/Users/natascha/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/texbin

我在 Mac OS X 10.7.5 上并在几个月前安装了 oh-my-zsh。我在 git 问题上发表了一篇文章,https://github.com/robbyrussell/oh-my-zsh/issues/929# issuecomment-11652602,好像还没有解决?我的插件可以工作(即我可以为“rails 控制台”键入 rails c)。

感谢您的任何帮助。

4

4 回答 4

37

简短的回答:不,zsh在这里帮不了你。您需要更改终端模拟器颜色设置,而不是zsh设置。

这是您目前看到的:

你所看到的

这就是您期望看到的:

RobbyRussell 主题

这是产生此提示的行:

PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c 
%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

Z-Shell确实有一些设置foregroundbackground您可以在PROMPT- 这就是fg_bold意思(前景粗体)中使用。您可以将其替换bg_为 for background,并省略bold以使用非粗体字体。

例如,我们可以通过添加来设置PROMPTto的背景:green%{bg[green]%}

PROMPT='%{$bg[green]%}%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c 
%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

这导致:

提示中的绿色背景

但是,这很可能不是您想要的。注意几点:

  1. bg[green]不会延伸到终端窗口的边缘 -设置仅适用于绘制线条的位置PROMPT
  2. 背景颜色在提示结束时重置为“默认” - 这是由%{$reset_color%}(需要将foreground颜色更改为默认值)完成的。获得一致的整行背景颜色很快就会变得混乱。

颜色如何工作

大致(我可能在细节上是错误的,但我相信总体要点是正确的):您使用的 shell 将 a 发送color code终端仿真器终端仿真器负责解释该颜色代码,并将其显示在屏幕上。这意味着您可以使用两种设置:

  1. shell颜色设置。这就是你在你的zshrc. 首先,这允许一致性 - 您可以说“将提示的这一位与提示的那位显示相同”。这并不意味着用户会在;中看到提示。是一个标签,仅此而已。$COLOR$COLOR$COLOR
  2. 显示的颜色设置。这就是您设置首选font的 , background,text color等的地方。在这里您可以说“将 shell 所说的所有内容显示$COLOR_1red, $COLOR_2as green”等。

您可以在ANSI终端中使用 16 种颜色,它们可能会或可能不会正确显示。检查此表以了解一些常见的终端颜色,并注意它们之间显示的差异!

修复你的颜色

如果您正在使用Terminal.app(在 OS X 上,我建议iTerm2),请打开终端 ( command+ ,) 的首选项,然后选择“设置”。有一堆“配置文件”可供您选择——为了模拟robbyrussell上面的屏幕截图,您需要稍微调整一下颜色。“自制”非常接近,但有不同的“文本”颜色(绿色而不是白色)。

[这里是Terminal.app 配置文件的robbyrussell zsh主题:Homebrew

Robby Russel <code>zsh</code> 主题与 <code>Homebrew</code> Terminal.app 配置文件

如果您想要一个好的、预设的、易于使用的配色方案,请查看Solarized

于 2013-01-04T02:33:25.810 回答
0

就像上面的答案中所说的那样,“您需要更改终端模拟器颜色设置:”

我找不到任何更改终端应用程序的理由,最简单的方法是将主题更改为以下链接中的可用主题之一,您可以找到适合 oh-my-zsh 主题的主题。

osx 终端主题

于 2018-01-01T10:12:01.193 回答
0

对我来说,修复是在首选项面板中找到的,我必须取消选择覆盖主题的选项...

我在 Red Hat 实例上使用 gnome-terminal。

位于:终端 -> 首选项 -> 未命名 -> 颜色 -> 使用系统主题中的颜色

(我花了很长时间才意识到这一点......)

于 2019-12-12T22:27:14.577 回答
0

我很惊讶这也不是开箱即用的。但是,只需对主题进行一些小的更改,我就可以非常接近 Basic

在此处输入图像描述

  • 将背景更改为深色
  • 将文本更改为浅色
  • 更改选择/不透明度以获得良好的高光

此外,在选择颜色时,请使用滴管获得您正在寻找的确切颜色:

在此处输入图像描述

使用吸管和他的主题图片,您应该可以非常接近。

于 2021-11-19T20:04:13.053 回答