ruby 输出彩色内容到控制台

程序输出控制台时,为了区分输出信息的严重程度,可以使用颜色符号等来做标识。

ruby 也支持设置输出内容的颜色,比如运行以下代码:

以下内容是百度到的,因发现很多博客都是同样的写法,所以出处反而没法写了。。。

puts "\033[1mBackground Colors...\033[0m\n"
puts "   \033[40m\033[37mBlack (40), White Text\033[0m\n"
puts "   \033[41mRed (41)\033[0m\n"
puts "   \033[42mGreen (42)\033[0m\n"
puts "   \033[43mYellow (43)\033[0m\n"
puts "   \033[44mBlue (44)\033[0m\n"
puts "   \033[45mMagenta (45)\033[0m\n"
puts "   \033[46mCyan (46)\033[0m\n"
puts "   \033[47mWhite (47)\033[0m\n"

控制台能看到这样的结果:

我们研究这个输出的内容:"\033[47mWhite (47)\033[0m\n",发现重点就是 \033[47m\033[0m\n,剩下的是输出的内容。

基于该原理,我们可以写出通用的调用方式:

def puts_with_style(style_index, *contents)
  contents.each do |content|
    puts "\033[#{style_index}m#{content}\033[0m\n"
  end
  nil
end

做了下循环调用测试,样式最高支持到 107,运行下面代码可测试:

108.times do |index|
  puts_with_style(index, index, "   color")
end

猜想这可能是控制台的输出规则,尝试了下 golang,发现该方式也是可行的。那我估计 python 等其他语言也是一样,大家可以尝试尝试。

原文地址:https://www.cnblogs.com/linying1991/p/12021828.html

时间: 2024-10-24 05:33:33

ruby 输出彩色内容到控制台的相关文章

python通过colorama模块在控制台输出彩色文字的方法

本文实例讲述了python通过colorama模块在控制台输出彩色文字的方法. colorama是一个python专门用来在控制台.命令行输出彩色文字的模块,可以跨平台使用,在windows下linux下都工作良好,如果你想让控制台的输出信息更漂亮一些,可以使用给这个模块. colorama官方地址:https://pypi.python.org/pypi/colorama 安装colorama模块 pip install colorama 用法: >>> from colorama i

shell在终端输出彩色文本

echo -e "\e[1;31m this is red text \e[0m" \e[1;31m 将颜色设置成红色,\e[0m"将颜色重置. 每种颜色都有对应的颜色码,重置0,黑色30,红色31,绿色32,蓝色34,洋红35,青色36,白色37 要设置彩色背景,经常使用的颜色码有:重置0,黑丝40,红色41,绿色42,***43,蓝色44,洋红45,青色46,白色47. echo -e "\e[1;42m this is green background \e[

VC printf输出彩色字体

在VC下使用SetConsoleTextAttribute()函数可以改变当前控制台的前景色和背景色,从而达到输出彩色字体的效果. 使用的方法也很简单,具体代码如下: [cpp] view plaincopy #include <windows.h> #include <winnt.h> #include <stdio.h> int main(int argc, char* argv[]) { HANDLE hConsoleWnd; hConsoleWnd = GetS

MVC.Net 5:允许保存和输出Html内容

当我们在保存表单内容时,如果其中有一项内容包含Html的tag时,系统会报如下错误: A potentially dangerous Request.Form value was detected from the client xxxxxxxxxxxx 要让程序绕开这个检验,我们可以在Model类中的对应字段上添加[AllowHtml]标识,如下图所示:这样Html的内容就不会被检测了,但是同时我们就需要注意防止发生注入攻击的可能性,当然这是另外一个话题了. 当我们保存了Html的内容后,如果

python终端如何输出彩色字体

python终端如何输出彩色字体 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033) 书写格式: \033[显示方式;前景色;背景色m+字符串 \033[0m 注意: 显示方式.前景色.背景色都是可选参数: 前景色就是字体颜色: m是必写参数: 三个参数没有顺序要求,尽量按照以下格式书写 例如:print("\033[33;41m你好IT网\03

在php中,如何将一个页面中的标签,替换为用户想输出的内容

前言:釜山行,暴露人性, ———————————————————————————————————————————————————————————————————————————— 今天说一个最简单的例子,就是在php中如何读取另一个html页面中的标签,并显示用户想输出的内容. 首先建立一个页面,命名为:test.html如下图所示: <!doctype html> <html lang="en"> <head> <meta charset=&

[笔记]Go语言在Linux环境下输出彩色字符

Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例: fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 其中0x1B是标记,[开始定义颜色,1代表高亮,40代表黑色背景,32代表绿色前景,0代表恢复默认颜色.显示效果为: 下面代码遍历全部显示效果. package main import ( "fmt" ) func main

C#正则表达式获取组名,按照组名输出匹配内容

最近写了个正则表达式匹配的工具,可以按照组名输出匹配内容,还是挺方便的,代码留存一下,以后用的话,直接copy了. Regex regex = new Regex(this.textBoxRegex.Text); Match result = regex.Match(this.textBoxText.Text); if (result.Success) { StringBuilder sb = new StringBuilder(); foreach (var groupName in rege

WIN32程序挂钩SetLastError,输出错误描述到控制台

WIN32程序挂钩SetLastError,输出错误描述到控制台 作者:徐灵甫 一.窗口模式应用程序(GUI)启用控制台的方法为: 步骤 方法 1 启动/关闭控制台 AllocConsole()FreeConsole() 2 重定向输入/输出 freopen("CONIN$","r",stdin)freopen("CONOUT$","w",stdout)freopen("CONOUT$","w&q