¿Hay una gema como 'Term::ANSIColor' que funcione con 256 terminales de color? El script de Perl 256colors2.pl funciona muy bien en my terminal, y me gustaría usar algunos de estos colores en mis scripts de Ruby sin insertar manualmente los códigos ANSI.Biblioteca de terminales de 256 colores para Ruby?
12
A
Respuesta
11
Aquí es una adaptación del guión 256colors2.pl a Ruby, con la ayuda de this guide. Define un método print_color(text, foreground, background)
que debería ser fácilmente aplicable a sus proyectos. Imprime la cadena en color y luego restablece el color al valor predeterminado de la terminal. Debe ser lo suficientemente fácil como para omitir el reinicio si así lo prefiere.
def rgb(red, green, blue)
16 + (red * 36) + (green * 6) + blue
end
def gray(g)
232 + g
end
def set_color(fg, bg)
print "\x1b[38;5;#{fg}m" if fg
print "\x1b[48;5;#{bg}m" if bg
end
def reset_color
print "\x1b[0m"
end
def print_color(txt, fg, bg)
set_color(fg, bg)
print txt
reset_color
end
# convenience method
def rgb_cube
for green in 0..5 do
for red in 0..5 do
for blue in 0..5 do
yield [red, green, blue]
end
print " "
end
puts
end
end
# rgb list on black bg
rgb_cube do |red, green, blue|
print_color("%d%d%d " % [red, green, blue], rgb(red, green, blue), nil)
end
puts
# rgb list on white bg
rgb_cube do |red, green, blue|
print_color("%d%d%d " % [red, green, blue], rgb(red, green, blue), 15)
end
puts
# system palette:
print "System colors:\n";
(0..7).each do |color|
print_color(" ", nil, color)
end
puts
(8..15).each do |color|
print_color(" ", nil, color)
end
puts
puts
# color cube
print "Color cube, 6x6x6:\n"
rgb_cube do |red, green, blue|
print_color(" ", nil, rgb(red, green, blue))
end
puts
# grayscale ramp
print "Grayscale ramp:\n"
for g in (0..23) do
print_color(" ", nil, gray(g))
end
puts
puts
-3
Hay una gema llamada Término :: ANSIColor en Rubyforge ... :)
No tengo idea de lo bueno que es.
1
Jugué un poco con la respuesta anterior y obtuve algo con lo que me pareció un poco más divertido trabajar.
LIB
def gray(g); 232 + g; end
def rgb(red, green, blue); 16 + (red * 36) + (green * 6) + blue; end
def green; rgb(0,5,0); end
def red; rgb(5,0,0); end
def c(fg, bg = nil); "#{fg ? "\x1b[38;5;#{fg}m" : ''}#{bg ? "\x1b[48;5;#{bg}m" : ''}" end
def ec; "\x1b[0m"; end
Ejemplo de uso
BASE_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..'))
def status(sDaemon)
b = File.exist?(File.join(BASE_DIR, 'pids', "#{sDaemon}.pid"))
puts c(b ? green : red) + sDaemon + (b ? ' RUNNING' : ' STOPPED') + ec
end
%w{ backuper emailSpamChecker indexer log2email orderManager sitemapProducer }.each { |s| status s }
8
2
Aquí hay uno que soporta 256-colores -
pintura administra colores terminales y efectos para ti Combina los puntos fuertes de las gemas como el término-ansicolor o el arcoíris en un colorizador flexible y fácil de usar.
Cuestiones relacionadas
- 1. Obteniendo 256 colores de ruby-ncurses
- 2. Obtener 256 colores en Emacs * shell *
- 3. Biblioteca de colores AS3
- 4. Biblioteca de dibujo para Ruby
- 5. Biblioteca de gráficos para Ruby
- 6. una buena biblioteca para calcular sha-256 en C++
- 7. (perfil vim) VIM 256 colores modo, archivos laggy php
- 8. ¿Biblioteca de Git para Ruby o Python?
- 9. emacs de apoyo 256 de color
- 10. 256 modos de color xterm para MacOS X
- 11. ¿Cómo configuro mi terminal Linux X para que Emacs tenga acceso a 256 colores?
- 12. ¿Qué biblioteca (pura) de Python usar para el cifrado AES 256?
- 13. ¿Cómo hacer que los colores de los terminales de Emacs sean los mismos que los colores de la GUI de Emacs?
- 14. biblioteca de ruby de alto nivel para encriptación
- 15. nvarchar (256) ....?
- 16. ActiveSupport Biblioteca de inflexión para Tiempo pasado en Ruby?
- 17. ¿Hay una biblioteca de registro asincrónico para Ruby?
- 18. Biblioteca de autorización Java como "CanCan" para Ruby on Rails
- 19. Emacs 256 colores que no funcionan con PuTTY y la pantalla
- 20. ¿Puede la biblioteca PHP y mssql seleccionar más de 256 caracteres de una columna varchar?
- 21. Ruby: lista de correo biblioteca o gema
- 22. /fechas como terminales en NLTK analizador
- 23. ¿Cómo puede un script de shell decir si se está ejecutando en una ventana xterm con soporte de 256 colores?
- 24. ¿Qué algoritmo es más fuerte para TLS: AES-256 o Camellia-256?
- 25. SHA 256 pseuedocode?
- 26. Uso LEER BINARIO para leer más de 256 bytes
- 27. zsh carácter extraño en emacs terminales
- 28. NSCocoaErrorDomain Code = 256
- 29. Biblioteca de procesamiento de imágenes para Android?
- 30. Error de cacao 256 datos de núcleo
Ese es el que él relacionó en su pregunta. – sepp2k
Para aclarar que la gema mencionada proporciona compatibilidad con ANSI de 8 colores. Estoy buscando el mismo tipo de cosas, con más colores. – brianegge