在Ruby中格式化STDOUT的文本

Jul*_*oux 4 ruby formatting stdout

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

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

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

Pes*_*sto 12

在许多终端(但不是Windows)上,您可以使用如下序列:"\e[#{code}m"其中代码基于这些表.如果使用多个代码,则代码必须用分号分隔.主要代码是:

强度:

1  Bold Intensity
4  Underline
5  Slow blink
6  Fast blink
22 Normal Intensity
Run Code Online (Sandbox Code Playgroud)

颜色:

Foreground 3X
Background 4X

Where X is:
-----------
0 Black
1 Red
2 Green
3 Yellow
4 Blue
5 Magenta
6 Cyan
7 White
Run Code Online (Sandbox Code Playgroud)

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


hey*_*ten 8

有一个名为gem的东西rainbow,可以很容易地为您的终端输出设置样式.

sudo gem install rainbow
Run Code Online (Sandbox Code Playgroud)

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

puts 'some text'.underline
Run Code Online (Sandbox Code Playgroud)

  • 时代已经改变,在这个时代,我现在可能会使用https://github.com/geemus/formatador. (2认同)