2009-07-10 1 views
19

Есть ли модуль ruby ​​для раскраски строк в терминале linux?терминал цвет в рубин?

+4

Я не стану отвечать, поэтому я не оживляю это, но есть отличный камень, называемый «цветным». это так же просто, как: «строка» .red', чтобы получить красный текст. [Подробнее] (http://rubydoc.info/gems/colored/1.2/frames): D – omninonsense

+0

Вы можете проверить это, а также есть варианты сделать это, не устанавливая другой Gem: [Colorized Ruby output] (http: //stackoverflow.com/questions/1489183/colorized-ruby-output) –

ответ

16

Я предпочитаю Rainbow gem, поскольку он также поддерживает Windows, если установлен win32console камень.

Вы можете использовать его как это:

puts "some " + "red".color(:red) + " and " + "blue on yellow".color(:blue).background(:yellow) 
+1

Это великолепный камень. Ухоженный и простой. –

4

Все, что вам нужно сделать, это начать с "\e[##m" и заканчиваются "\e[0m"

Просто замените ## на номер цвета. Примерами могут служить:

31:Red 32:Green 33:Yellow 34:Blue 35:Magenta 36:Teal 37:Grey

1:Bold (Can be used with any color)

Вот рубиновый скрипт, чтобы показать все терминальные цвета. Download it или запустите приведенный ниже код.

def color(index) 
    normal = "\e[#{index}m#{index}\e[0m" 
    bold = "\e[#{index}m\e[1m#{index}\e[0m" 
    "#{normal} #{bold} " 
end 

8.times do|index| 
    line = color(index + 1) 
    line += color(index + 30) 
    line += color(index + 90) 
    line += color(index + 40) 
    line += color(index + 100) 
    puts line 
end 
4

Использование методов класса строк, как:

class String 
def black;   "\033[30m#{self}\033[0m" end 
def red;   "\033[31m#{self}\033[0m" end 
def green;   "\033[32m#{self}\033[0m" end 
def brown;   "\033[33m#{self}\033[0m" end 
def blue;   "\033[34m#{self}\033[0m" end 
def magenta;  "\033[35m#{self}\033[0m" end 
def cyan;   "\033[36m#{self}\033[0m" end 
def gray;   "\033[37m#{self}\033[0m" end 
end 

и использования:

puts "This prints green".green 
puts "This prints red".red 
+0

Точный и лаконичный, лучший ответ. – medik

0

Я большой поклонник рубина раскрасить драгоценный камень, который я недавно загруженный. После того как вы загрузите и включите его в свою программу, вы можете добавить

.colorize(:blue) 

до конца любой строки. Вы можете использовать большинство цветов, в том числе предшествующего цвета, light_ как так

.colorize(:light_blue) 

вы также может сделать цвет фона, EG:

puts "mytext".colorize(:background => :green 

раскрашенным подчеркивают, EG:

puts "mytext".on_blue.underline 

или используйте для этого HTML-подобные теги

puts <blue> "text text text" </blue> 

для раскрашивания Github, перейдите The colorize Github

вы можете установить Раскрасить камень, набрав

gem install colorize 

в терминале, командной строки, что угодно.затем поместить это в свой файл, прежде чем положить в ИСПОЛЬЗОВАНИИ IT

EG:

require 'rubygems' 
require 'colorize' 
puts "mytext".colorize(:red) 

Но НЕ

puts "mytext".colorize(:red) 
require 'rubygems' 
require 'colorize' 

Требовать заявление должно быть в программе в строках, прежде чем использовать драгоценный камень