我只需要对哈希中的一个值进行着色,就像那样
require 'colorize'
h = {a: 'a', b: 'b'.colorize(:red), c: 'c'}
h[:b]
返回这个
"\e[0;31;49mb\e[0m"
因此puts h[:b]
按预期工作,而h.to_s
或h.inspect
给出这个
"{:a=>\"\\e[0;31;49ma\\e[0m\", :b=>\"\\e[0;34;49mb\\e[0m\"}"
如您所见,所有控制序列都已转义。
由于在h
使用时被隐式转换为字符串puts h
,所以我在终端中得到的只是:
{:a=>"a", :b=>"\e[0;31;49mb\e[0m", :c=>"c"}
没有任何颜色。
我应该怎么做才能获得正确的彩色输出?