256 renk terminaliyle çalışan 'Term::ANSIColor' gibi bir mücevher var mı? 256colors2.pl perl betiği, my terminal'da harika çalışıyor ve bu renklerden bazılarını ANSI kodlarını manuel olarak eklemeden ruby komut dosyalarında kullanmak istiyorum. Paketleme sistemini RubyForge üzerinde Vadeli :: ANSIColor adında bir mücevher vardır256 renkli terminal kitaplığı?
12
A
cevap
11
İşte 256colors2.pl script bir adaptasyon this guide bazı yardımıyla, yakut şerefine. Projeleriniz için kolayca uygulanabilecek bir print_color(text, foreground, background)
yöntemini tanımlar. Dizeyi renkli yazdırır ve ardından rengi terminal varsayılanına sıfırlar. Bunu tercih ederseniz sıfırlamayı atlamak için yeterince kolay olmalıdır.
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
... :)
olsa ne kadar iyi Fikrim yok.
1
Daha önceki yanıtla biraz oynamıştım ve birlikte çalışmak için biraz daha eğlenceli bulduğum bir şey buldum.
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
ÖRNEK KULLANIM Bu taş neye ihtiyacınız işlemesi gereken
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
Burada 256 renk destekleyen biri -
Boya terminali renkleri yönetir ve sizin için efektler. Term-ansicolor veya gökkuşağı gibi değerli taşların gücünü, kullanımı kolay ve esnek bir renklendiriciye dönüştürür.
Sorusunda bağladığı kişi budur. – sepp2k
Belirtilen gemin 8 renk ANSI desteği sağladığını açıklığa kavuşturmak için. Daha fazla renkle aynı şeyleri arıyorum. – brianegge