То, как я могу сделать, помещает команды, которые я произвел от основанного на командной строке рубинового цвета программы? Я был бы, ценил любые ссылки на то, как я называю каждый различный цвет также.
Позволяет говорят, что мы запускаем с этого..
puts "The following word is blue.. Im Blue!"
puts "The following word is green.. Im Green!"
puts "The following word is red.. Im Red!"
И я получаю другой текст, который я хочу в различных цветах, которые я хочу, Вы получаете идею.
Я использую Ubuntu, я должен был бы изменить свой подход так, чтобы выводы программы правильно в различной OS?
Я нашел в этой статье , описывающий очень простой способ написания цветных текстов к консоли. Статья описывает этот небольшой пример, который, похоже, делает трюк (я взял свободу, чтобы немного его улучшить):
def colorize(text, color_code)
"\e[#{color_code}m#{text}\e[0m"
end
def red(text); colorize(text, 31); end
def green(text); colorize(text, 32); end
# Actual example
puts 'Importing categories [ ' + green('DONE') + ' ]'
puts 'Importing tags [' + red('FAILED') + ']'
лучше всего, кажется, определяет некоторые цвета. Вы можете разместить пример, когда вам нужно также разные цвета фона (см. Нижняя часть статьи).
При использовании окна XP автор упоминает о требовании драгоценного камня под названием Win32Console .
Я создал что-то вроде этого:
begin
require 'Win32/Console/ANSI' if PLATFORM =~ /win32/
rescue LoadError
raise 'You must gem install win32console to use color on Windows'
end
class Colors
COLOR1 = "\e[1;36;40m"
COLOR2 = "\e[1;35;40m"
NOCOLOR = "\e[0m"
RED = "\e[1;31;40m"
GREEN = "\e[1;32;40m"
DARKGREEN = "\e[0;32;40m"
YELLOW = "\e[1;33;40m"
DARKCYAN = "\e[0;36;40m"
end
class String
def color(color)
return color + self + Colors::NOCOLOR
end
end
Теперь вы можете просто использовать другой метод строки:
"Hello World".color(Colors::DARKGREEN)
знать все цвета, просто выполняющие это:
begin
require 'Win32/Console/ANSI' if PLATFORM =~ /win32/
rescue LoadError
raise 'You must gem install win32console to use color on Windows'
end
[0, 1, 4, 5, 7].each do |attr|
puts '----------------------------------------------------------------'
puts "ESC[#{attr};Foreground;Background"
30.upto(37) do |fg|
40.upto(47) do |bg|
print "\033[#{attr};#{fg};#{bg}m #{fg};#{bg} "
end
puts "\033[0m"
end
end
Я нахожу цветной драгоценный камень , чтобы быть самым простым и чистым для использования.
puts "this is red".red
puts "this is red with a blue background (read: ugly)".red_on_blue
puts "this is red with an underline".red.underline
puts "this is really bold and really blue".bold.blue
logger.debug "hey this is broken!".red_on_yellow
Проверьте следующие библиотеки:
http://www.gnu.org/software/ncurses/ncurses.html
Для быстрого и грязного решения вы можете просто встроить цветные коды ASCII в ваших строках (\ E [XXM устанавливает цвет, который будет использоваться от Now XX и \ E [0M сброс цвета к нормальному):
puts "The following word is blue.. \e[34mIm Blue!\e[0m"
puts "The following word is green.. \e[32mIm Green!\e[0m"
puts "The following word is red.. \e[31mIm Red!\e[0m"
Коды ASCII также поддерживают такие вещи, как подчеркивание, мигание и выделение текста.
Также кажется, есть вспомогательная библиотека Доступно, что касается фактических кодов ASCII для вас.
Редактировать : Что касается различных платформ: у вас не должно быть никаких проблем с использованием кодов ASCII на компьютерах Unix, но Windows, Afaik, не поддерживает их из коробки. К счастью, есть Win32Console Gem , который, кажется, это исправлено.
Вы можете использовать следующий фрагмент (найден на странице veger, связанной с) для загрузки библиотеки Win32Console только на Windows:
begin
require 'Win32/Console/ANSI' if PLATFORM =~ /win32/
rescue LoadError
raise 'You must gem install win32console to use color on Windows'
end