发信人: Spirit (妖精雨·雨之魂·天凉好个妖), 信区: ANSI
标 题: 第二章
发信站: 日月光华 (2007年01月24日19:09:56 星期三), 站内信件
───────────────────────────────────────
__ ___
╱█ __ __ ______ ______ ╱∠-╲
╱__█ █ █ █__ ̄  ̄█ ̄ /╱︵╲\\
__╱  ̄█ █╲█ ▁ █ __█__ (╱⌒ \\│
 ̄  ̄  ̄  ̄  ̄ ̄ ̄  ̄ ̄ ̄ ╱_ / _)_/
日月光华ANSI版短期培训班 /__ /__
▏ ╱/╱
____ /▏╱╱ ╲
╱◣●\ /\︶╱ \
第 二 章: 控制码解说,颜色的搭配 /◆ _ / │ ~╲ │
▕▲ ╰)/─│ ☉│ │ │
▕◢ ^ \─│ │ │ │
主讲教师: Spirit ╲▼■/ │ ☉│ │_│
时间安排: 2007年01月24日 ▔▔ │ │ | |
当班教师: legendspirit,Spirit,mote等 │ ︵___/ \_
│ (~──||||-'
───────────────────────────────────────
──|基本知识|────────────────────────────────
一 什么是ANSI转义序列
ANSI转义序列,都是以一个ASCII 码27号字符开始,该字符在firebird系统下
的输入方式是连按两下ESC(水木的系统也是这样), 这时一般会出现一个*号,
不过它与直接通过Shift+8输入的*号不同,这实际上是一个控制字符(ASCII码
27号字符),这里要称赞一下水木,控制符用了黄颜色的*,这样即使跟普通的
*号同时出现也不会混淆了。
ANSI转义序列是区分大小写的,后面我们会详细介绍这一点。
在编写文章时连按两下ESC ,看到一个*号后,接着输入“[31m暗红”(不要输
入那两个引号),现在应该是“*[31m暗红”了,按一下ESC再按一下C键,就能
看见这样的效果:暗红。字的颜色与其他未加控制符的有所不同,其实我们有
很多可以设置的效果,后面将用列表形式给出。
发文时按ESC-C可以预览效果,大多数情况下看到的和发表出来的实际效果是
一样的,不过ESC-C只能看当前一屏(23行)内的效果。
────────────────────────────────────|⑴|─
──|基本知识|────────────────────────────────
二 设置显示属性
显示属性是最常用的一个ANSI控制,可设置的项目包括
◆ 前景色(文本颜色)
◆ 背景色
◆ 高亮状态的设置
◆ 文本下划线
◆ 闪烁文本
◆ 反显
BBS上我们可以设置的颜色共有16种,其中8种低亮颜色,8种高亮颜色。
为避免其他方面造成的影响,请大家先把终端软件的默认高亮等的设置关掉。
cterm:编辑>>系统设置>>高级,确认没选上总是高亮
fterm:选项>>参数设置,确认没有选上默认高亮
sterm:选项>>当前连接设置>>远程登录设置>>外观,确认没选上总是高亮
────────────────────────────────────|⑵|─
──|基本知识|────────────────────────────────
三 色彩属性 |颜色|前景代码|背景代码|背景效果|256色 色值|
|══|════|════|════|═════|
BBS上有8种颜色可用,分别为:|黑色| *[0;30m| *[40m|▕▔▔▏|(00,00,00)|
黑,红,绿,黄,蓝,紫,靛,白 |灰色| *[1;30m| 不可用| ▔▔ |(80,80,80)|
由于字符前景有亮和暗的区别,|暗红| *[0;31m| *[41m|▕▔▔▏|(80,00,00)|
共有16种不同的前景色,背景 |亮红| *[1;31m| 不可用| ▔▔ |(FF,00,00)|
色只允许暗色,因此只有8种。 |暗绿| *[0;32m| *[42m|▕▔▔▏|(00,80,00)|
|亮绿| *[1;32m| 不可用| ▔▔ |(00,FF,00)|
四 色彩代码 |暗黄| *[0;33m| *[43m|▕▔▔▏|(80,80,00)|
|亮黄| *[1;33m| 不可用| ▔▔ |(FF,FF,00)|
*[0m:关闭各显示属性 |暗蓝| *[0;34m| *[44m|▕▔▔▏|(00,00,80)|
*[1m:高亮 |亮蓝| *[1;34m| 不可用| ▔▔ |(00,00,FF)|
*[4m:下划线 |暗紫| *[0;35m| *[45m|▕▔▔▏|(80,00,80)|
*[5m:闪烁 |亮紫| *[1;35m| 不可用| ▔▔ |(FF,00,FF)|
*[7m:反显 |暗靛| *[0;36m| *[46m|▕▔▔▏|(00,80,80)|
其余色彩代码见右表,要说明 |亮靛| *[1;36m| 不可用| ▔▔ |(00,FF,FF)|
的是,*[m 和*[0m功能基本类 |暗白| *[0;37m| *[47m|▕▔▔▏|(C0,C0,C0)|
似,具体区别下一章会谈到。 |亮白| *[1;37m| 不可用| ▔▔ |(FF,FF,FF)|
────────────────────────────────────|⑶|─
──|基本知识|────────────────────────────────
五 代码简化
一般来说BBS里面一行代码的长度最多254个字符(一个中文字算两个字符),对
于活动看板等的,可能还有更严格的限制,允许的代码长度更短。因此,代码
简化,去除不必要的代码,对于光华当前系统有着较大的作用。
我们看一个例子,例,按照先前所说可表示为*[1m*[5m*[36m*[44m例*[0m,这
样就需要占24个字节,我们可以这样简化:*[1;5;36;44m例*[0m,这样就只占
18个字节。控制符之间可以用“;”相互连接,最后只用一个“m”结尾,碰到
*[31;32;33;42;45;44m这样重复出现前景和背景的情况,我们只看同一类型最
后出现的控制符,也就是*[33;44m,先出现的效果会被后出现的覆盖。
六 规范代码
对于代码的规范,最基本的原则是保证代码的通用性,各种代码尤其是下划线
和反色,在不同浏览终端的显示大为不同,因此要尽量避免使用。而闪烁要避
大面积的使用,以保证他人浏览的方便。这里建议若连续几行都有代码控制,
要在每一行结束用*[m或*[0m收尾,避免影响到下一行的代码。
────────────────────────────────────|⑷|─
──|色彩理论|────────────────────────────────
一 三原色和三原光
▁
我们日常生活中接触到的颜色系统是三原色 ◢▄◣
系统,三种基本色为:红、黄、蓝。而电脑 ▌红 │
显示的颜色系统是三原光系统,三种基本色 ▁ ↙ ◥▄◤ ↘ ▁
为:红、绿、蓝。三原色与三原光是有区别 ◢▄◣ ◢▄◣
的,我们今后所说的颜色都是建立在三原光 ▌黄 │ ↓ ▌紫 │
系统上的,希望大家不要混淆。 ◥▄◤ ↘ ▁ ↙ ◥▄◤
◢▄◣
二 三原光的合成 ↑ ▌白 │ ↑
▁ ◥▄◤ ▁
1=红 2=绿 4=蓝 三原光的合成可以用左 ◢▄◣ ↗ ↖ ◢▄◣
3=红+绿=黄 边的表格进行理解,其 ▌绿 │ ↑ ▌蓝 │
5=红+蓝=紫 包含了合成原理和对应 ◥▄◤ ▁ ◥▄◤
6=绿+蓝=青 代码,也可以用右边的 ↘ ◢▄◣ ↙
7=红+绿+蓝=白 图进行形象记忆。 ▌靛 │
0就是黑色 ◥▄◤
────────────────────────────────────|⑸|─
──|色彩理论|────────────────────────────────
三 相邻色和互补色
▁
我们看一下右边的示意图,以白色为中心,黑 ◢▄◣
色为外延,中圈互相毗邻的颜色我们称之为相 ▌红 │
邻色,分处白色两端的为互补色。白色与黑色 ▁ ↙ ◥▄◤ ↘ ▁
我们称为基础互补色。 ◢▄◣ ◢▄◣
▌黄 │ ↓ ▌紫 │
相邻色距离最近,混杂在一起时会产生视觉误 ◥▄◤ ↘ ▁ ↙ ◥▄◤
差,因此大面积的互相混淆是不推荐的;互补 ◢▄◣
色距离最远,混杂在一起会产生强烈的对比效 ↑ ▌白 │ ↑
果,不易产生视觉误差。黑色和白色可以和任 ▁ ◥▄◤ ▁
何颜色搭配而不会产生较大视觉误差。 ◢▄◣ ↗ ↖ ◢▄◣
▌绿 │ ↑ ▌蓝 │
这里需要提一下黑色与白色间的两种颜色灰色 ◥▄◤ ▁ ◥▄◤
与暗白,灰色与三种基础色不易产生混淆,而 ↘ ◢▄◣ ↙
与三种合成色极易产生混淆,这点在使用上需 ▌靛 │
要格外注意。暗白与任何一种颜色的搭配都适 ◥▄◤
中,但大面积的背景暗白可能造成过亮效果。
────────────────────────────────────|⑹|─
──|色彩理论|────────────────────────────────
四 透明效果
我们先前曾给出一张颜色与代码的列表,里面列出了16种颜色在 256色表示下
的代码,这里就不重新列出,而根据颜色代码加法,可以得到多种透明效果。
正确的透明效果: ▌ ▌ ▌ ▌
▌ ▌
▌ ▌
▌ ▌
──────────────────────────────────
错误的透明效果: ▌
▌
▌
▌
────────────────────────────────────|⑺|─
──|知识扩充|────────────────────────────────
一 特殊ANSI转义序列
*[A 光标上移(例如*[3A是上移3行)
*[B 光标下移
*[C 光标右移
*[D 光标左移
*[H 光标定位(实际使用时一般为*[m;nH,m取1~24,n取1~80)
*[s 存储光标位置
*[u 恢复光标位置(回到最近一次*[s所在的地方)
*[K 删除到行末(fterm和sterm用当前背景色填充,cterm用默认背景色填充)
*[f 作用和用法和*[H完全一样
*[2J 作用是清屏
这些特殊转义序列平时使用较少,主要用于特殊qmd的制作,我们在qmd制作一
节中会详细介绍,但这类qmd可能影响他人阅读,不建议使用。
需要注意的是,*[u和*[U是有区别的,使用时请小心谨慎。
────────────────────────────────────|⑻|─
──|知识扩充|────────────────────────────────
____ ◢◢◤ ____
二 非标准ANSI转义序列 ╱ ╲▃▅▆▇ ▅▃╱ ╲
/ ◢ █ 夕 楼◣ \
Cterm │ ◢ █ █ █Sylow ◣ │
*[M 延时控制 \ ◢ ▂▃▂█ █▂▃▂ ◣ /
*[G 响铃 \ ◢ ◣ ◢ ◣ /
*[I 改变字体 ▊▊ ▎▎
*[F 对某一区域填充颜色(基本不用) ████ ▇ ▇ ████
*[U 弹出URL确认框 ▊▊ ████ █ █ ████ ▎▎
fterm ◥◥ ◤ ◥ ◤◤
*[nM 删除当前开始的n行 ◢╲ ▁▃▄▆▅▄▅▆▄▃▁ ╱◣
*[nL 插入n个空白行,光标位置不变 ▊◢ ◣▎
*[nP 删除n个空格
*[n@ 插入n个空格,光标位置不变 ▊◥ ▁▂▃▄▆███▆▄▃▂▁ ◤▎
◥ ◤
目前很多特殊和非标准的ANSI转义序 /◥ ◤\
列都被禁止,希望大家勿随意使用。 \ ▅▃▁ ▁▃▅ /
其实只用标准序列就可以做出很多特 ╭ ╭╯▇▇▇╰╮ ╮
殊效果,右图就是一个很好的例子。 ────╯ ╰────
────────────────────────────────────|⑼|─
──|本次作业|────────────────────────────────
一 A类作业(所有正式学员需要完成)
1. 在Test版练习手动给少量文字加控制码。(该题无须书面提交)
2. 使用透明色效果制作一个ANSI。(书面提交,形式不限)
二 B类作业(建议版主学员或有兴趣的学员完成)
1. 简化以下代码。(书面提交,提交简化后代码及显示效果)
*[1m*[4m*[5m*[33;45;31mA*[0m*[44;45;32mB*[0m*[42;32mC*[0m
2. 规范代码的意义。(书面提交,字数不限)
三 C类作业(希望有一定ANSI基础或有兴趣的学员完成)
1. 自行查阅有关走马灯效果的制作方法并尝试制作。(书面提交,形式不限)
正式学员完成作业后提交给组长,由组长统一提交给教师。旁听学员若希望提交作
业,可自行选择当班教师进行提交。
────────────────────────────────────|⑽|─
※ 来源:·日月光华 bbs.fudan.edu.cn·[FROM: 211.86.148.148]
※ 修改:·Spirit 於 01月24日21:38:17 修改本文·[FROM: 211.86.148.148]
发信人: Spirit 妖精雨 雨之魂 天凉好个妖 , 信区: ANSI
标 题: 第二章
发信站: 日月光华 2007年01月24日19:09:56 星期三 , 站内信件
⌒
日月光华ANSI版短期培训班
第 二 章: 控制码解说 颜色的搭配
^
主讲教师 Spirit
时间安排 2007年01月24日
当班教师 legendspirit Spirit mote等
'
基本知识
一 什么是ANSI转义序列
ANSI转义序列 都是以一个ASCII 码27号字符开始 该字符在firebird系统下
的输入方式是连按两下ESC 水木的系统也是这样 , 这时一般会出现一个*号
不过它与直接通过Shift 8输入的*号不同 这实际上是一个控制字符 ASCII码
27号字符 这里要称赞一下水木 控制符用了黄颜色的* 这样即使跟普通的
*号同时出现也不会混淆了
ANSI转义序列是区分大小写的 后面我们会详细介绍这一点
在编写文章时连按两下ESC 看到一个*号后 接着输入 [31m暗红 不要输
入那两个引号 现在应该是 *[31m暗红 了 按一下ESC再按一下C键 就能
看见这样的效果 暗红 字的颜色与其他未加控制符的有所不同 其实我们有
很多可以设置的效果 后面将用列表形式给出
发文时按ESC C可以预览效果 大多数情况下看到的和发表出来的实际效果是
一样的 不过ESC C只能看当前一屏 23行 内的效果
⑴
基本知识
二 设置显示属性
显示属性是最常用的一个ANSI控制 可设置的项目包括
前景色 文本颜色
背景色
高亮状态的设置
文本下划线
闪烁文本
反显
BBS上我们可以设置的颜色共有16种 其中8种低亮颜色 8种高亮颜色
为避免其他方面造成的影响 请大家先把终端软件的默认高亮等的设置关掉
cterm 编辑>>系统设置>>高级 确认没选上总是高亮
fterm 选项>>参数设置 确认没有选上默认高亮
sterm 选项>>当前连接设置>>远程登录设置>>外观 确认没选上总是高亮
⑵
基本知识
三 色彩属性 颜色 前景代码 背景代码 背景效果 256色 色值
BBS上有8种颜色可用 分别为 黑色 *[0;30m *[40m 00,00,00
黑,红,绿,黄,蓝,紫,靛,白 灰色 *[1;30m 不可用 80,80,80
由于字符前景有亮和暗的区别 暗红 *[0;31m *[41m 80,00,00
共有16种不同的前景色 背景 亮红 *[1;31m 不可用 FF,00,00
色只允许暗色 因此只有8种 暗绿 *[0;32m *[42m 00,80,00
亮绿 *[1;32m 不可用 00,FF,00
四 色彩代码 暗黄 *[0;33m *[43m 80,80,00
亮黄 *[1;33m 不可用 FF,FF,00
*[0m 关闭各显示属性 暗蓝 *[0;34m *[44m 00,00,80
*[1m 高亮 亮蓝 *[1;34m 不可用 00,00,FF
*[4m 下划线 暗紫 *[0;35m *[45m 80,00,80
*[5m 闪烁 亮紫 *[1;35m 不可用 FF,00,FF
*[7m 反显 暗靛 *[0;36m *[46m 00,80,80
其余色彩代码见右表 要说明 亮靛 *[1;36m 不可用 00,FF,FF
的是 *[m 和*[0m功能基本类 暗白 *[0;37m *[47m C0,C0,C0
似 具体区别下一章会谈到 亮白 *[1;37m 不可用 FF,FF,FF
⑶
基本知识
五 代码简化
一般来说BBS里面一行代码的长度最多254个字符 一个中文字算两个字符 对
于活动看板等的 可能还有更严格的限制 允许的代码长度更短 因此 代码
简化 去除不必要的代码 对于光华当前系统有着较大的作用
我们看一个例子 例 按照先前所说可表示为*[1m*[5m*[36m*[44m例*[0m 这
样就需要占24个字节 我们可以这样简化 *[1;5;36;44m例*[0m 这样就只占
18个字节 控制符之间可以用 ; 相互连接 最后只用一个 m 结尾 碰到
*[31;32;33;42;45;44m这样重复出现前景和背景的情况 我们只看同一类型最
后出现的控制符 也就是*[33;44m 先出现的效果会被后出现的覆盖
六 规范代码
对于代码的规范 最基本的原则是保证代码的通用性 各种代码尤其是下划线
和反色 在不同浏览终端的显示大为不同 因此要尽量避免使用 而闪烁要避
大面积的使用 以保证他人浏览的方便 这里建议若连续几行都有代码控制
要在每一行结束用*[m或*[0m收尾 避免影响到下一行的代码
⑷
色彩理论
一 三原色和三原光
我们日常生活中接触到的颜色系统是三原色
系统 三种基本色为 红 黄 蓝 而电脑 红
显示的颜色系统是三原光系统 三种基本色
为 红 绿 蓝 三原色与三原光是有区别
的 我们今后所说的颜色都是建立在三原光 黄 紫
系统上的 希望大家不要混淆
二 三原光的合成 白
1 红 2 绿 4 蓝 三原光的合成可以用左
3 红 绿 黄 边的表格进行理解 其 绿 蓝
5 红 蓝 紫 包含了合成原理和对应
6 绿 蓝 青 代码 也可以用右边的
7 红 绿 蓝 白 图进行形象记忆 靛
0就是黑色
⑸
色彩理论
三 相邻色和互补色
我们看一下右边的示意图 以白色为中心 黑
色为外延 中圈互相毗邻的颜色我们称之为相 红
邻色 分处白色两端的为互补色 白色与黑色
我们称为基础互补色
黄 紫
相邻色距离最近 混杂在一起时会产生视觉误
差 因此大面积的互相混淆是不推荐的 互补
色距离最远 混杂在一起会产生强烈的对比效 白
果 不易产生视觉误差 黑色和白色可以和任
何颜色搭配而不会产生较大视觉误差
绿 蓝
这里需要提一下黑色与白色间的两种颜色灰色
与暗白 灰色与三种基础色不易产生混淆 而
与三种合成色极易产生混淆 这点在使用上需 靛
要格外注意 暗白与任何一种颜色的搭配都适
中 但大面积的背景暗白可能造成过亮效果
⑹
色彩理论
四 透明效果
我们先前曾给出一张颜色与代码的列表 里面列出了16种颜色在 256色表示下
的代码 这里就不重新列出 而根据颜色代码加法 可以得到多种透明效果
正确的透明效果
错误的透明效果
⑺
知识扩充
一 特殊ANSI转义序列
*[A 光标上移 例如*[3A是上移3行
*[B 光标下移
*[C 光标右移
*[D 光标左移
*[H 光标定位 实际使用时一般为*[m;nH m取1 24 n取1 80
*[s 存储光标位置
*[u 恢复光标位置 回到最近一次*[s所在的地方
*[K 删除到行末 fterm和sterm用当前背景色填充 cterm用默认背景色填充
*[f 作用和用法和*[H完全一样
*[2J 作用是清屏
这些特殊转义序列平时使用较少 主要用于特殊qmd的制作 我们在qmd制作一
节中会详细介绍 但这类qmd可能影响他人阅读 不建议使用
需要注意的是 *[u和*[U是有区别的 使用时请小心谨慎
⑻
知识扩充
二 非标准ANSI转义序列
夕 楼
Cterm Sylow
*[M 延时控制
*[G 响铃
*[I 改变字体
*[F 对某一区域填充颜色 基本不用
*[U 弹出URL确认框
fterm
*[nM 删除当前开始的n行
*[nL 插入n个空白行 光标位置不变
*[nP 删除n个空格
*[n@ 插入n个空格 光标位置不变
目前很多特殊和非标准的ANSI转义序
列都被禁止 希望大家勿随意使用
其实只用标准序列就可以做出很多特
殊效果 右图就是一个很好的例子
⑼
本次作业
一 类作业 所有正式学员需要完成
1. 在Test版练习手动给少量文字加控制码 该题无须书面提交
2. 使用透明色效果制作一个ANSI 书面提交 形式不限
二 类作业 建议版主学员或有兴趣的学员完成
1. 简化以下代码 书面提交 提交简化后代码及显示效果
*[1m*[4m*[5m*[33;45;31mA*[0m*[44;45;32mB*[0m*[42;32mC*[0m
2. 规范代码的意义 书面提交 字数不限
三 类作业 希望有一定ANSI基础或有兴趣的学员完成
1. 自行查阅有关走马灯效果的制作方法并尝试制作 书面提交 形式不限
正式学员完成作业后提交给组长 由组长统一提交给教师 旁听学员若希望提交作
业 可自行选择当班教师进行提交
⑽
来源: 日月光华 bbs.fudan.edu.cn [FROM: 211.86.148.148]
修改: Spirit 於 01月24日21:38:17 修改本文 [FROM: 211.86.148.148]