Как произвести мой рубиновый текст командной строки в различных цветах

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

Позволяет говорят, что мы запускаем с этого..

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?

40
задан Jeremy Mack 12 June 2014 в 01:49
поделиться

5 ответов

Я нашел в этой статье , описывающий очень простой способ написания цветных текстов к консоли. Статья описывает этот небольшой пример, который, похоже, делает трюк (я взял свободу, чтобы немного его улучшить):

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 .

57
ответ дан 27 November 2019 в 01:11
поделиться

Я создал что-то вроде этого:

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
6
ответ дан 27 November 2019 в 01:11
поделиться

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

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 
38
ответ дан 27 November 2019 в 01:11
поделиться
1
ответ дан 27 November 2019 в 01:11
поделиться

Для быстрого и грязного решения вы можете просто встроить цветные коды 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
1
ответ дан 27 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: