2009-07-10 47 views
19

Có mô-đun ruby ​​để tô màu chuỗi trong thiết bị đầu cuối linux không?màu thiết bị đầu cuối trong ruby?

+4

Tôi sẽ không đăng câu trả lời, vì vậy tôi không hồi sinh điều này, nhưng có một viên đá quý tiện lợi được gọi là "màu". nó đơn giản như: '" string ".red' để lấy văn bản màu đỏ. [Xem thêm thông tin] (http://rubydoc.info/gems/colored/1.2/frames): D – omninonsense

+0

Bạn có thể kiểm tra điều này cũng như có các tùy chọn để làm điều đó mà không cần cài đặt một Gem khác: [Colorized Ruby output] (http: //stackoverflow.com/questions/1489183/colorized-ruby-output) –

Trả lời

16

tôi thích Rainbow gem vì nó cũng hỗ trợ Windows nếu đá quý win32console đã được cài đặt.

Bạn có thể sử dụng nó như thế này:

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

Đây là một viên ngọc tuyệt vời. Duy trì tốt và đơn giản. –

4

Tất cả bạn phải làm là bắt đầu với "\e[##m" và kết thúc bằng "\e[0m"

Chỉ cần thay thế ## với số lượng màu sắc. Ví dụ như:

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

1:Bold (Can be used with any color)

Dưới đây là một kịch bản ruby ​​để hiển thị tất cả các màu sắc thiết bị đầu cuối. Download it hoặc chạy mã bên dưới.

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

Sử dụng phương pháp Chuỗi lớp như:

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 

và cách dùng:

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

Chính xác và súc tích, câu trả lời hay nhất. – medik

0

Tôi là một fan hâm mộ lớn của ruby ​​colorize đá quý, mà tôi vừa mới tải về. Khi bạn tải xuống và đưa nó vào chương trình của mình, bạn có thể thêm

.colorize(:blue) 

vào cuối chuỗi bất kỳ. Bạn có thể sử dụng hầu hết màu sắc, bao gồm trước màu bằng light_ như vậy

.colorize(:light_blue) 

bạn cũng có thể làm màu nền, EG:

gạch dưới
puts "mytext".colorize(:background => :green 

colorized, EG:

puts "mytext".on_blue.underline 

hoặc sử dụng các thẻ giống như HTML cho nó cũng như

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

cho Colorize Github, đi đến The colorize Github

bạn có thể cài đặt các viên ngọc Colorize bằng cách gõ

gem install colorize 

vào thiết bị đầu cuối của bạn, command prompt, bất cứ điều gì.sau đó đặt này vào tập tin của bạn trước khi bạn đặt trong SỬ DỤNG CNTT

EG:

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

Nhưng KHÔNG

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

Các yêu cầu báo cáo phải nằm trong chương trình ở dòng trước khi sử dụng gem

Các vấn đề liên quan