ANSI 终端

ANSI 终端

ansi_term-badge cat-command-line-badge

此程序描述了 ansi_term crate 的使用方法,以及它如何用于控制 ANSI 终端上的颜色和格式,如蓝色粗体文本或黄色下划线文本。

ansi_term 中有两种主要的数据结构:ANSIStringStyleStyle 包含样式信息:颜色,是否粗体文本,或者是否闪烁,或者其它样式。也有 Colour 变体,代表简单的前景色样式。ANSIString 是与 Style 配对的字符串。

注意:英式英语中使用 Colour 而不是 Color,不要混淆。

打印彩色文本到终端

use ansi_term::Colour;

fn main() {
    println!("This is {} in color, {} in color and {} in color",
             Colour::Red.paint("red"),
             Colour::Blue.paint("blue"),
             Colour::Green.paint("green"));
}

终端中的粗体文本

对于比简单的前景色变化更复杂的事情,代码需要构造 Style 结构体。Style::new() 创建结构体,并链接属性。

use ansi_term::Style;

fn main() {
    println!("{} and this is not",
             Style::new().bold().paint("This is Bold"));
}

终端中的粗体和彩色文本

Colour 模块实现了许多类似 Style 的函数,并且可以链接方法。

use ansi_term::Colour;
use ansi_term::Style;

fn main(){
    println!("{}, {} and {}",
             Colour::Yellow.paint("This is colored"),
             Style::new().bold().paint("this is bold"),
             Colour::Yellow.bold().paint("this is bold and colored"));
}