Формат текста для STDOUT в Ruby - PullRequest
4 голосов
/ 29 мая 2009

Я пишу небольшой скрипт на Ruby, который будет работать в CLI.

Чтобы улучшить интерфейс, мне бы хотелось добавить цвет / смелость к некоторым выводимым элементам.

Это выполнимо? Если это так, и я почти уверен, что это, как?

Ответы [ 2 ]

11 голосов
/ 29 мая 2009

На многих терминалах (но не в Windows) вы можете использовать такую ​​последовательность: "\e[#{code}m", где коды основаны на этих таблицах . Коды должны быть разделены точкой с запятой, если используется более одного. Основные коды:

Интенсивность:

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 сбрасывает все до значения по умолчанию для терминала.

8 голосов
/ 29 мая 2009

Существует гем под названием rainbow, который действительно упрощает оформление вывода терминала.

sudo gem install rainbow

После установки вы можете делать такие вещи, как:

puts 'some text'.underline
...