代码之家  ›  专栏  ›  技术社区  ›  Julien Genestoux

用Ruby为stdout设置文本格式

  •  4
  • Julien Genestoux  · 技术社区  · 15 年前

    我正在编写一个将在CLI中运行的小Ruby脚本。

    为了改进界面,我需要为我输出的一些元素添加颜色/粗体。

    这是可行的吗?如果是的话,我几乎可以肯定这是怎么回事?

    2 回复  |  直到 14 年前
        1
  •  8
  •   Kostas    14 年前

    有一块宝石叫 rainbow 这使得设计终端输出的样式非常容易。

    sudo gem install rainbow
    

    安装后,您可以执行以下操作:

    puts 'some text'.underline
    
        2
  •  11
  •   Pesto    15 年前

    在许多终端(而不是窗口)上,您可以使用这样的序列: "\e[#{code}m" ,其中代码基于 these tables . 如果使用多个分号,则代码必须用分号分隔。主要代码有:

    强度:

    1  Bold Intensity
    4  Underline
    5  Slow blink
    6  Fast blink
    22 Normal Intensity
    

    颜色:

    Foreground 3X
    Background 4X
    
    Where X is:
    -----------
    0 Black
    1 Red
    2 Green
    3 Yellow
    4 Blue
    5 Magenta
    6 Cyan
    7 White
    

    因此,例如,对于蓝色背景上缓慢闪烁的粗体绿色文本,您将使用 "\e[5;1;32;44mWOW!\e[0m" . 这个 \e[0m 将所有内容重置为终端默认值。