是否有像'Term::ANSIColor'這樣的寶石可以和256個彩色終端一起使用? perl腳本256colors2.pl在my terminal中效果很好,我想在ruby腳本中使用其中的一些顏色,而無需手動插入ANSI代碼。用於Ruby的256色終端庫?
12
A
回答
11
這裏的256colors2.pl劇本的改編,以紅寶石,從this guide一些幫助。它定義了一個應該很容易適用於你的項目的方法。print_color(text, foreground, background)
。它以彩色打印字符串,然後將顏色重置爲終端默認值。如果你願意,應該很容易跳過重置。
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
在Rubyforge上有一個名爲Term :: ANSIColor的寶石...... :)
不知道它有多好。
1
我在前面的回答中玩了一下,並得到了一些我覺得更有趣的事情。
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
用法示例
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
相關問題
- 1. 256色終端的單色控制檯應用程序
- 2. 樹莓派終端環境中的Unicode和256色
- 3. 您最喜愛的256色終端vim colorscheme
- 4. 從ruby-ncurses中獲取256種顏色
- 5. 如何在HTML/jQuery中爲Linux終端生成256色調色板
- 6. 終端顏色
- 7. OSX終端顏色
- 8. WebStorm終端顏色
- 9. Python終端菜單?終端着色?終端進度顯示?
- 10. tty終端的Vim顏色
- 11. 用於Mac終端的不同顏色的回顯
- 12. 在終端上運行ruby的Ubuntu終端快捷方式?
- 13. 爲什麼OS X上的終端VIM中的256色調色板發生了變化?
- 14. 用於色帶端的CSS
- 15. OS X終端顏色
- 16. 在終端着色STDIN
- 17. 設置256色的VIM
- 18. emacs的256色支持
- 19. 用於Flickr API的Ruby庫?
- 20. 適用於Ruby的XMPP庫
- 21. Vim Ruby語法在Gnu屏幕退出vim時着色終端顏色
- 22. 在終端中查看Ruby的輸出
- 23. JS/Ruby AES 256對稱
- 24. 終端中紅色不起作用
- 25. 讓Vim再次使用終端顏色
- 26. 使emacs gui只使用終端顏色
- 27. 蒸汽交易卡:什麼終端用於自己的庫存
- 28. 基於終端的IDE
- 29. 基於終端的RPG
- 30. GWT的Google終端客戶端庫
這是他在他的問題中關聯的那個。 – sepp2k 2009-09-10 09:05:59
澄清提到的gem提供了8種顏色的ANSI支持。我正在尋找同樣的東西,有更多的顏色。 – brianegge 2009-09-10 13:21:25