2009-07-10 17 views
19

¿Hay un módulo de ruby ​​para cadenas de color en un terminal de Linux?color de terminal en ruby?

+4

No voy a publicar una respuesta, por lo que no revivir esto, pero hay una gema ingeniosa llamada "de color". es tan simple como: '" string ".red' para obtener texto en rojo. [Más información] (http://rubydoc.info/gems/colored/1.2/frames): D – omninonsense

+0

Puede verificar esto así como también hay opciones para hacerlo sin instalar otra Gema: [Salida Ruby coloreada] (http: //stackoverflow.com/questions/1489183/colorized-ruby-output) –

Respuesta

16

prefiero el Rainbow gem ya que también es compatible con Windows si la gema win32console se ha instalado.

Se puede utilizar la siguiente manera:

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

Esta es una gran joya. Bien mantenido y simple. –

4

Todo lo que tiene que hacer es empezar con "\e[##m" y termina con "\e[0m"

Basta con sustituir el ## con el número del color. Algunos ejemplos son:

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

1:Bold (Can be used with any color)

Aquí es un script de rubí para mostrar todos los colores del terminal. Download it o ejecute el código a continuación.

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

Uso de métodos de clase de cadenas como:

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 

y su uso:

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

Preciso y conciso, la mejor respuesta. – medik

0

yo soy un gran fan del rubí colorear gema, que recientemente he descargado. Una vez que descargue e incluirlo en su programa, puede agregar

.colorize(:blue) 

hasta el final de cualquier cadena. Se puede utilizar la mayoría de los colores, incluyendo precedente el color por light_ al igual que

.colorize(:light_blue) 

también puede hacer colores de fondo, Ejem:

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

tintadas, Ejem:

puts "mytext".on_blue.underline 

o use etiquetas similares a HTML para él también

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

para el colorear Github, vaya a The colorize Github

puede instalar la gema colorear escribiendo

gem install colorize 

en su terminal, el intérprete de comandos, lo que sea.a continuación, poner esto en su archivo antes de poner en los usos de TI

Ejem:

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

pero no

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

La establecer que los estados deben estar en el programa en las líneas antes de utilizar el gem

Cuestiones relacionadas