红宝石的终端颜色?

时间:2009-07-10 10:15:00

标签: ruby bash shell colors terminal

是否有一个ruby模块用于在linux终端中着色字符串?

5 个答案:

答案 0 :(得分:16)

我更喜欢Rainbow gem,因为如果安装了win32console gem,它也支持Windows。

你可以像这样使用它:

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

答案 1 :(得分:10)

是的,谷歌是我的朋友:)

http://term-ansicolor.rubyforge.org/

答案 2 :(得分:7)

您所要做的就是从"\e[##m"开始,以"\e[0m"

结束

只需将##替换为颜色编号即可。例如:

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

1:Bold (Can be used with any color)

这是一个显示所有终端颜色的ruby脚本。 Download it或运行以下代码。

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

答案 3 :(得分:5)

使用String类方法,如:

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

和用法:

puts "This prints green".green
puts "This prints red".red

答案 4 :(得分:0)

我是我最近下载的ruby colorize gem的粉丝。下载并将其包含在您的程序中后,您可以添加

.colorize(:blue)

到任何字符串的末尾。你可以使用大多数颜色,包括在light_之前的颜色,如此

.colorize(:light_blue)

你也可以做背景色, EG:

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

彩色下划线, EG:

puts "mytext".on_blue.underline

或者也使用类似HTML的标签

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

对于colorize Github,转到The colorize Github

您可以输入

来安装colorize gem
gem install colorize

进入你的终端,命令提示符,无论如何。然后在你使用它之前把它放到你的文件中

EG:

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

但不是

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

在使用gem

之前,require语句必须在行中