vt100 终端 控制码 颜色 php,VT100控制码进行终端扩展显示

转载:blog.chinaunix.net/uid-20587912-id-405035.html

VT100是一个古老的终端定义,后面出现的终端几乎都兼容这种终端。VT100控制码是用来在终端扩展显示的代码。比如果终端上任意坐标用不同的颜色显示字符。有时又称为ANSI Escape Sequence.

所有的VT100控制符是\033打头(即ESC的ASCII码)用输出字符语句来输出。可以在命令行用echo -ne命令,或者在C程序中用printf来输出VT100的控制字符。

具体格式有两种,

·一种数字形式,\033[m .

如\33[40m,表示让后面字符输出用背景黑色输出\33[0m表示取消前面的设置。

其中前景(字符颜色)/背景颜色需要同时输出。

·另一种是控制字符形式。即最后一个字符不是m,而是控制字符。

\033[K清除从光标到行尾的内容

\033[nC光标右移n行

VT100控制码

VT100控制码归类如下。

\33[nA光标上移n行\33[nB光标下移n行\33[nC光标右移n行\33[nD光标左移n行\33[y;xH设置光标位置\33[2J清屏\33[K清除从光标到行尾的内容\33[s保存光标位置\33[u恢复光标位置\33[?25l隐藏光标\33[?25h显示光标

VT100数字型控制码

\33[0m关闭所有属性\33[1m设置高亮度\33[4m下划线\33[5m闪烁\33[7m反显\33[8m消隐\33[30m -- \33[37m设置前景色\33[40m -- \33[47m设置背景色

VT100关于颜色的说明.

VT100的颜色输出分为,注意要同时输出前景的字符颜色和背景颜色。

背景颜色范围:40----4940:黑41:深红42:绿43:黄色44:蓝色45:紫色46:深绿47:白色前景字符颜色:30-----------3930:黑31:红32:绿33:黄34:蓝色35:紫色36:深绿37:白色

这样输出一个字符串比较完整如下

echo -ne "\033[字背景颜色;字体颜色m字符串\033[0m"

例:

echo -ne "\033[41;36m something here \033[0m"

常见样例

echo -ne "\033[2J" #清屏

echo -ne "\033[47;30m Andrew Huang \033[0m" #黑底白字输出Andrew Huang

echo -ne "033[5;10H \033[42;33m abc \033[0m" #(10,5)输出绿底黄字。

关于VT100控制码编码

VT100只要printf打印相应的字符串即可支持相应功能,但是因为输出控制符虚列太多于难记,因此可通用一些宏来简化其操作。

#define NONE          "\033[m"

#define RED           "\033[0;32;31m"

#define LIGHT_RED     "\033[1;31m"

#define GREEN         "\033[0;32;32m"

#define LIGHT_GREEN   "\033[1;32m"

#define BLUE          "\033[0;32;34m"

#define LIGHT_BLUE    "\033[1;34m"

#define DARY_GRAY     "\033[1;30m"

#define CYAN          "\033[0;36m"

#define LIGHT_CYAN    "\033[1;36m"

#define PURPLE        "\033[0;35m"

#define LIGHT_PURPLE "\033[1;35m"

#define BROWN         "\033[0;33m"

#define YELLOW        "\033[1;33m"

#define LIGHT_GRAY    "\033[0;37m"

#define WHITE         "\033[1;37m"

参考资料:

VT100编码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值