#ansi-codes #termal #fancy #colored #cli #terminal #macro

termal_proc

Rust库,用于使用ANSI代码进行丰富的彩色CLI。

3个稳定版本

1.1.0 2024年8月6日
1.0.1 2024年4月15日
1.0.0 2024年1月24日

过程宏 中排名 1618


用于 termal

自定义许可

84KB
1.5K SLoC

Termal

crates.io donwloads

使用ANSI转义代码的终端功能Rust库。

目前库包含ANSI代码和特殊宏。适用于文本样式、颜色和光标移动。

示例

使用宏

use termal::*;

// you can use a special macro to inline the color codes, this will write
// italic text with yellow foreground and reset at the end.
printcln!("{'yellow italic}hello{'reset}");

// the macro also supports standard formatting
printcln!("{'yellow italic}{}{'reset}", "hello");

// you can also use short versions of the codes
printcln!("{'y i}{}{'_}", "hello");

// you can also use true colors with their hex codes
printcln!("{'#dd0 i}{}{'_}", "hello");

不使用宏

// Move cursor to position column 5 on line 7 and write 'hello' in italic
// yellow

use termal::codes::*;

println!("{}{YELLOW_FG}{ITALIC}hello{RESET}", move_to!(5, 7));

move_to!等宏可以接受字面量或动态值。其主要特点是如果提供字面量,它将展开为包含ANSI代码的字符串字面量。如果您提供动态值,则展开为format!

use termal::codes::*;

let a = move_to!(5, 7);
// expands to:
let a = "\x1b[5;7H";

let b = move_to!(2 + 3, 7);
// expands to:
let b = format!("\x1b[{};{}H", 2 + 3, 7);

如果知道参数的值,也可以使用*c

use termal::formatc;

// the spaces, or the lack of them is important
let a = formatc!("{'move_to5,7}");

渐变

您可以使用函数termal::gradient创建渐变

use termal::*;

// This will create foreground gradient from the rgb color `(250, 50, 170)`
// to the rgb color `(180, 50, 240)`
printcln!("{}{'_}", gradient("BonnyAD9", (250, 50, 170), (180, 50, 240)));

如何使用

要查看所有可能的命令和使用方法,请参阅文档

如何获取

它可在crates.io上找到

使用cargo

cargo add termal

在Cargo.toml中

[dependencies]
termal = "1.0.0"

依赖项

~1.2–1.7MB
~34K SLoC