1 个不稳定版本
0.1.0 | 2023年8月29日 |
---|
#831 在 命令行界面
21KB
134 代码行
Termal
一个使用 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 a = format!("\x1b[{};{}H", 2 + 3, 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", gradient("BonnyAD9", (250, 50, 170), (180, 50, 240)))
)
宏语法
现在有 3 个宏:formatc
、printc
和 printcln
。它们分别相当于 format
、print
和 println
。
在所有这些中,都适用相同的语法
- 以
'
开头的括号是颜色格式(例如,{'yellow}
) - 其他括号由宏
format
解释
颜色格式可以包含
- ASCII 字母的名称(例如,
yellow
) - 十六进制颜色(例如,
#FF125C
)
名称和十六进制颜色由空格分隔
十六进制颜色
十六进制颜色可以是 1、2、3 或 6 位。它们的解释如下
- 单色被解释为重复 6 次的数字(例如,
#B
与#BBBBBB
相同) - 两位色被解释为重复 3 次的两个数字(例如,
#AB
与#ABABAB
相同) - 三位颜色被解释为每个数字重复一次(例如,
#ABC
等同于#AABBCC
) - 六位颜色被解释为典型的RGB值(即
#RRGGBB
)
如果您想设置前景色,只需输入十六进制代码(例如,#ABCDEF
),如果您想设置背景色,请在十六进制颜色后面紧跟下划线(_
)(例如,#ABCDEF_
)
颜色名称列表
大多数名称都有别名(例如,写入 white
和 w
是相同的)。一些可以重置,即通过带下划线的相同名称完成(_
)。一些名称可能/必须具有参数。这些是数字,并在名称后直接写入,多个参数由逗号分隔。如果参数是可选的,则将默认值写在旁边。即使没有参数,也必须存在逗号。 (例如,mt5,7
是有效的,mt,7
是有效的,mt5,
是有效的,mt,
是有效的,但 mt
是无效的)
ASCII码
bell
:控制台响铃(产生声音)backspace
:向左移动一个位置htab
,tab
:水平制表符move_down_scrl
,mds
:如果有必要,向下移动一行newline
,nl
:移动到下一行的开头vtab
:垂直制表符carriage_return
|cr
:移动到当前行的开头
移动光标
move_to
,mt
:将光标移动到指定的位置,有两个参数,默认值是0
。move_up
,mu
:将光标向上移动指定的数量,有一个参数,默认值是1
move_down
,md
:将光标向下移动指定的数量,有一个参数,默认值是1
move_right
,mr
:将光标向右移动指定的数量,有一个参数,默认值是1
move_left
,ml
:将光标向左移动指定的数量,有一个参数,默认值是1
set_down
,sd
:将光标移动到n行以下的行首,有一个参数,默认值是1
set_up
,su
:将光标移动到n行以上的行首,有一个参数,默认值是1
move_to_column
,mc
:将光标移动到给定的x坐标,有一个参数,默认值是0
move_up_scrl
,mus
:如果有必要,向上移动一行save_cur
、save
、s
:保存当前光标位置(单个槽位,非先进先出)load_cur
、loat
、l
:加载最后保存的光标位置
擦除
erase_to_end
、e_
:从光标处擦除到屏幕末尾erase_from_start
、_e
:从屏幕起始处擦除到光标erase_screen
、_e_
:擦除整个屏幕erase_all
、e
:擦除整个屏幕和滚动缓冲区erase_ln_end
、el_
:从光标处擦除到行末erase_ln_start
、_el
:从行首擦除到光标erase_line
、erase_ln
、_el_
、el
:擦除当前行
样式和颜色
reset
、_
:重置所有颜色和样式
bold
:设置为粗体faint
、f
:设置为细体italic
、i
:设置为斜体underline
、u
:设置为下划线blinking
、blink
:设置为闪烁inverse
:设置为反色(交换背景和前景)invisible
、invis
:设置为不可见(前景和背景相同)striketrough
、strike
:设置为删除线double_underline
、dunderline
、dun
:设置为双下划线
_bold
:重置粗体和细体_italic
、_i
:重置斜体_underline
、_u
:重置下划线和双下划线_blinking
、_blink
:重置闪烁_inverse
:重置反色_invisible
、_invis
:重置不可见_striketrough
、_strike
:重置删除线
black_fg
、black
、bl
:将前景色设置为黑色white_fg
、white
、w
:将前景色设置为白色gray_fg
、gray
、gr
:将前景色设置为灰色bright_gray_fg
、bgray
、bgr
:将前景色设置为亮灰色
red_fg
、red
、r
:将前景色设置为红色green_fg
、green
、g
:将前景色设置为绿色yellow_fg
、yellow
、y
:将前景色设置为黄色magenta_fg
、magenta
、m
:将前景色设置为洋红色cyan_fg
、cyan
、c
:将前景色设置为青色
dark_red_fg
、dred
、dr
:将前景色设置为深红色dark_green_fg
、dgreen
、dg
:将前景色设置为深绿色dark_yellow_fg
、dyellow
、dy
:将前景色设置为深黄色dark_magenta_fg
、dmagenta
、dm
:将前景色设置为深品红色dark_cyan_fg
、dcyan
、dc
:将前景色设置为深青色
_fg
:重置前景色
black_bg
、blackb
、blb
:将背景色设置为黑色white_bg
、whiteb
、wb
:将背景色设置为白色gray_bg
、grayb
、grb
:将背景色设置为灰色bright_gray_bg
、bgrayb
、bgrb
:将背景色设置为亮灰色
red_bg
、redb
、rb
:将背景色设置为红色green_bg
、greenb
、gb
:将背景色设置为绿色yellow_bg
、yellowb
、yb
:将背景色设置为黄色magenta_bg
、magentab
、mb
:将背景色设置为品红色cyan_bg
、cyanb
、cb
:将背景色设置为青色
dark_red_bg
、dredb
、drb
:将背景色设置为深红色dark_green_bg
、dgreenb
、dgb
:将背景色设置为深绿色dark_yellow_bg
、dyellowb
、dyb
:将背景色设置为深黄色dark_magenta_bg
、dmagentab
、dmb
:将背景色设置为深品红色dark_cyan_bg
、dcyanb
、dcb
:将背景色设置为深青色
_bg
:重置背景色
fg
:将前景色设置为256种颜色之一,有一个参数bg
:将背景色设置为256种颜色之一,有一个参数
其他
line_wrap
、wrap
:启用换行_line_wrap
、_wrap
:禁用换行
hide_cursor
、nocur
:隐藏光标show_cursor
、_nocur
:显示光标save_screen
、sscr
:保存屏幕视图load_screen
、lscr
:恢复最后保存的屏幕视图alt_buf
、abuf
:启用备用缓冲区_alt_buf
、_abuf
:禁用备用缓冲区
复合
clear
、cls
:清除屏幕和缓冲区,并将光标移至左上角位置(等价于e mt,
)