在Ruby中格式化STDOUT的文本

时间:2009-05-29 16:56:04

标签: ruby formatting stdout

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

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

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

2 个答案:

答案 0 :(得分:11)

在许多终端(但不是Windows)上,您可以使用如下序列:"\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将所有内容重置为终端默认值。

答案 1 :(得分:8)

有一个名为rainbow的宝石,可以很容易地为终端输出设置样式。

sudo gem install rainbow

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

puts 'some text'.underline