更好的红宝石终端着色库

时间:2010-12-11 21:32:36

标签: ruby terminal ansi-colors

有很多着色库:彩色,术语 - ansicolor。 但有没有可以做到这一点:

puts "#{'hello'.red} world!".bold

world!应该是粗体。

为了说清楚,我想得到这个:

"\e[1m\e[31mhello\e[0m\e[1m world!\e[0m"

或甚至更好(更短):

"\e[1;31mhello\e[0;1m world!\e[0m"

而不是:

"\e[1m\e[31mhello\e[0m world!\e[0m"

3 个答案:

答案 0 :(得分:8)

由于没有,我写了自己的,<打击>与二十一点和妓女聪明的一个 - smart_colored

gem install smart_colored

并运行

require 'smart_colored/extend'
# without extend you'll need to use 'string'.colored.red

puts "#{'hello'.red} world!".bold

答案 1 :(得分:0)

lib被称为Highline 它有一个color方法:say("This should be <%= color('bold', BOLD) %>!") 这可以很容易地用于实现String#bold

答案 2 :(得分:0)

如果你使用的是高线,我制作了一个扩展颜色的宝石并提供帮助,例如:

say_bold 'this is bold text'

https://github.com/bonzofenix/highline-color