【问题标题】:oh-my-zsh themes don't show properly (background stays white) [closed]oh-my-zsh 主题无法正确显示(背景保持白色)[关闭]
【发布时间】:2012-12-12 22:07:24
【问题描述】:

我想弄清楚为什么我的 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)。

感谢您的帮助。

【问题讨论】:

  • 您有一些颜色(➜ ~ 是红色和浅绿色),但不是全部?在Terminal.app 中使用.zshrcoh-my-zshBasic 主题,我有一个白色背景/黑色文本,红色 和浅绿色~。这是你所期待的吗?目前还不太清楚您没有正确看到哪些颜色以及您是哪种颜色 - 一些屏幕截图可能会有所帮助。 :)
  • @simont,在我的 .zshrc 中,我清楚地声明了 "export ZSH_THEME="robbyrussell"" ,它不应该看起来像 robbyrussell 主题(黑色背景和白色文本吗?)。哪几行然后,如果我只是加载主题本身,则负责白色背景和黑色文本,并且主题看起来与此不同(即黑色背景和白色文本)。

标签: osx-lion zsh zshrc


【解决方案1】:

简短回答:不,zsh 在这里帮不了你。您需要更改 terminal emulator 颜色设置,而不是 zsh 设置。

这是你目前看到的:

这就是你期望看到的:

这是产生此提示的行:

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_ 作为背景,并省略 bold 以使用非粗体字体。

例如,我们可以通过添加%{bg[green]%}来设置PROMPT的背景为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 将 color code 发送到 终端仿真器终端仿真器负责解释该颜色代码,并将其显示在屏幕上。这意味着您可以调整两种设置:

  1. shell 颜色设置。这就是您在zshrc 中所做的事情。首先,这允许一致性 - 您可以说“在相同的$COLOR 中显示提示的 this 位作为提示的 that 位”。这意味着用户将看到$COLOR 中的提示; $COLOR 是一个标签,仅此而已。
  2. 显示的颜色设置。这就是你设置首选fontbackgroundtext color等的地方。在这里你可以说“将shell所说的所有内容显示为$COLOR_1red$COLOR_2green”等.

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

修复颜色

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

[这里是robbyrussellzsh 主题和Homebrew Terminal.app 配置文件:

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

【讨论】:

  • 非常彻底的回答,非常感谢!我会尝试实现它,但我想我的问题是:我为什么需要设置颜色,但是坐在我旁边的同事在完全相同的计算机上,刚刚将主题设置为 robbyrussell 并且没有颜色有问题?以及成千上万的其他用户。此问题仅对某些用户仍然存在 - 那些找到解决我在问题中提到的问题的方法的用户。
  • @zima 这很有趣。使用与您相同的zsh 设置、相同的终端仿真器、相同的操作系统?
  • 我确实最终使用了 Solarized;但是每次我重新启动终端应用程序时,都必须在“设置”中重新选择主题。
  • @zima - 如果您使用的是 Terminal.app,您可以设置默认配置文件(选择配置文件,然后按“默认”)。我使用iTerm2,它还可以让你永久设置配色方案。
【解决方案2】:

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

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

osx-terminal-themes

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      使用吸管和a picture of his theme,你应该可以非常接近。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        • 2017-09-10
        • 2023-04-05
        相关资源
        最近更新 更多