【问题标题】:How do zsh ansi colour codes work?zsh ansi 颜色代码如何工作?
【发布时间】:2011-09-03 19:54:33
【问题描述】:

我想让我的终端中的主机名变成橙色。我该怎么做?

【问题讨论】:

    标签: zsh zshrc


    【解决方案1】:

    打印

    <ESC>[33mHostname<ESC>[0m
    

    作为转义字符\x1b

    【讨论】:

      【解决方案2】:

      首先,我不确定您使用的是什么终端,或者它是否支持橙色。我的支持以下:红色、蓝色、绿色、青色、黄色、洋红色、黑色和白色。以下是我在终端中获取颜色的方法:


      您需要先使用autoload 加载颜色。我使用以下内容加载颜色并将它们分配给有意义的名称

      #load colors
      autoload colors && colors
      for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
          eval $COLOR='%{$fg_no_bold[${(L)COLOR}]%}'  #wrap colours between %{ %} to avoid weird gaps in autocomplete
          eval BOLD_$COLOR='%{$fg_bold[${(L)COLOR}]%}'
      done
      eval RESET='%{$reset_color%}'
      

      您可以使用%m 字符串在提示中设置主机名。所以要设置,比如说一个红色的主机名,你会这样做

      ${RED}%m${WHITE}\>
      

      这将打印类似bneil.so&gt;

      【讨论】:

      • 这是一个很棒的 sn-p @yoda。你知道是否有办法1)知道在自动加载颜色和颜色中加载了哪些颜色? 2) 知道你的终端支持什么颜色吗?
      • 这些是autoload 加载的颜色。这个小循环只是将它们重命名为更直观的颜色名称(例如,RED 而不是 fg_no_bold_RED 或类似的名称)。如果您运行的是 Mac OS X 10.6 及更低版本,则默认的 Terminal.app 将仅支持 16 种颜色。你可以下载iterm2 for Mac,这是一个很棒的终端,支持 256 色。对于 OS X 10.7,我认为 Terminal.app 支持 256 色(虽然我无法验证,因为我还没有升级)。您也可以使用this handy script 来查看它支持多少种颜色。
      • @yoda,我也将百分比换行添加到了 RESET 中。否则它对我来说有同样的“奇怪的差距”问题。
      【解决方案3】:

      在您的终端中运行以下代码应该会告诉您您的终端是否支持 256 色。

      for COLOR in {0..255} 
      do
          for STYLE in "38;5"
          do 
              TAG="\033[${STYLE};${COLOR}m"
              STR="${STYLE};${COLOR}"
              echo -ne "${TAG}${STR}${NONE}  "
          done
          echo
      done
      

      它还以38;5;x 的形式向您显示每种颜色的代码,其中x 是256 种可用颜色之一的代码。 另外,请注意将"38;5" 更改为"48;5" 将显示等效的背景颜色。然后,您可以使用任何您喜欢的颜色来组成前面提到的提示。

      【讨论】:

      • ${NONE}的值是多少?
      猜你喜欢
      • 1970-01-01
      • 2019-05-29
      • 2012-05-22
      • 2017-07-17
      • 2011-04-13
      • 2011-09-04
      • 2015-01-10
      • 2021-07-23
      • 2013-10-13
      相关资源
      最近更新 更多