20px - +
wrap
zh en
-
发信人: allenwu (未注册用户·别理我,烦着呢,滚!!!!), 信区: ANSI 标 题: 3. 显示属性*[m的设置 发信站: 日月光华 (2003年12月14日00:37:40 星期天), 站内信件 显示属性是最常用的一个ANSI控制,可设置的项目包括 ◆ 前景色(文本颜色) ◆ 背景色 ◆ 高亮状态的设置 ◆ 文本下划线 ◆ 闪烁文本 ◆ 反显 BBS上我们可以设置的颜色共有16种,其中8种低亮颜色,8种高亮颜色, 为了避免其他方面造成的影响,请大家先把终端软件的默认高亮等的设置关掉: ·cterm2000: 编辑>>系统设置>>高级,确认没选上总是高亮 ·fterm : 选项>>参数设置,确认没有选上默认高亮 ·sterm : 选项>>当前连接设置>>远程登录设置>>外观,确认没选上总是高亮 好,现在开始,先看一下下图: 设置显示属性 *[p1;p2;...;pnm p1...pn是一些整数含义见下,m必须小写,;32m*是两下ESC打出来的,不是键盘上的* 0-关闭各显示属性 30 31 32 33 34 35 36 37 1-高亮 颜色代码记忆法: 40 ss ss ss ss ss ss ss ss 4-下划线 41 ss ss ss ss ss ss ss ss 5-闪烁 1= 2=绿 4= 42 ss ss ss ss ss ss ss ss 7-反显 3=+绿= 43 ss ss ss ss ss ss ss ss 5=+= 44 ss ss ss ss ss ss ss ss 30~37设置前景色 _︳ 6=绿+= 45 ss ss ss ss ss ss ss ss 40~47设置背景色 7=+绿+= 46 ss ss ss ss ss ss ssss. 0就是黑色 47 ss ss ss ss ss ss ss ss *[m*[0m类似,都能关闭闪烁、下划线和反显,并恢复到默认前背景色 参数可连续设置: 如 *[0;1;5;32;46m 相当于 *[0m*[1m*[5m*[32m*[46m 30~37用来设置前景色,可以按上图记忆颜色,也可以直接背8种颜色对应: *[30m黑色 *[31m红色 *[32m绿色 *[33m黄色 *[34m蓝色 *[35m紫色 *[36m青色 *[37m暗白 要得到相应的高亮颜色,用*[1m, *[1m*[31m与*[1;31m是一样的,一般用后者使得代码更短 背景色用40~47来设置,背景色都是低亮的,因此只有8种 *[5m闪烁,要注意的是一般来说一屏上闪烁的部分不要太多太集中 *[4m是下划线, 在cterm里面下划线一律是白色的, 而fterm或sterm里面下划线的颜色与相应位置文字的颜色相同 *[7m反显建议不要使用,各种终端软件对其的解释差别较大 cterm中是交换前背景,高亮一律只作用在前景 fterm中忽略前背景色,用白底黑字 sterm中交换前背景,而且会把高亮作用到背景色上, 因此sterm中可能出现高亮背景低亮前景的情况 *[0m与*[m两者差不多,关闭闪烁下划线反显,并恢复到默认前背景色 在水木或者紫霞等站两者一样 sterm对两者的解释也一样 在其他BBS,用cterm或fterm的人,*[0m一律恢复到低亮, *[m则根据你的设置,恢复到默认的高低亮状态 如果是在水木、紫霞等站点,或者用的是sterm, 当设成了默认高亮时就得不到低亮的颜色 fterm,cterm中如果你的默认背景被设成了不同于黑色的另一种颜色 *[40m会切换到默认背景颜色而不是黑色, sterm则可能切换到黑色 一般来说BBS里面一行代码的长度最多254个字符(一个中文字算两个字符), 对于活动看板等的,可能还有更严格的限制,允许的代码长度更短 因此有时候一定要使用尽量短的代码,重复的代码不要多次设置,例如: *[0;32;41m红底绿字*[1;32;43m高亮黄底绿字*[5;1;31;43m高亮闪烁黄底红字 这行代码可以缩短为 *[0;32;41m红底绿字*[1;43m高亮黄底绿字*[5;31m高亮闪烁黄底红字 精简代码也是一门学问,这个就不在这里多谈了。 254个字符其实并不算多,一般一行是80个可见字符, 如果每个都切换一次颜色,设置前景色需要增加5个字符, 6*80=480,已经远远超出254了, 所以一行中颜色的变化还是受到一定限制的 除非到达屏幕底端,不然上一行末尾的显示属性会延续到下一行,这也是要注意的 -- ※ 来源:·日月光华 bbs.fudan.edu.cn·[FROM: 10.85.24.241]