A. 终端机控制符 |
在几十年前,流行的是各种终端机(terminal),它们都遵守ANSI X3.64控制字符序列标准(还有一些公司比如IBM、DEC、HP制定了自己的扩展标准),这些控制字符序列能帮助终端对显示的内容作一些处理,比如光标定位,字符色彩,背景色,窗口等等。
随着PC的流行,终端机被淘汰,但是原先的终端显示方式以及这些控制字符序列都被保留。人们开发出了虚拟的终端仿真程序来获得和从前一样的终端体验。自然,各种原先的终端机都有被仿真,较为流行的比如有DEC-VT100,简称VT100。在linux下可以用:
echo $TERM
来查看当前终端类型,也可以在/etc/termcap或者/etc/terminfo/中查到完整的终端类型。
Windows终端窗口的很多显示功能,都是通过win32 API来实现的。对于古老的DOS和Win95/98,可通过加载ansi.sys来支持终端机控制符。下面是各版本Windows对其的支持:
WIN95:使用ANSI terminal control,config.sys 中加入device=ansi.sys
WIN98:使用ANSI terminal control
WINNT:使用console mode API
WIN2K:使用console mode API
所以,对于目前的Win2k/XP/2003的用户,不能使用终端机控制符。
注:在google上查ansi.sys,可找到许多相关的资料。
[1] http://www.contextfree.net/wangyg/b/tech_his/basic_history.html,VB虽非正统之Basic,也不能算纯粹的语言,但其使用广泛,姑且忝列其中吧。
[2] http://www.muppetlabs.com/~breadbox/bf/,有趣的Brain Fuck语言。
[3] 终端类型、控制符,参见附录A。
[4] 译注:POSIX是unix的工业标准,regexp最初来源于unix,POSIX对regexp也作了规范。
[5]译注:下面译为捕获或者capture,模式中捕获的概念指,使用临时变量来保存匹配的子模式,常用于向前引用。
[6] 译注:得到类似于十六进制编辑器的一个界面显示
[7] 译者按:好像是巴西人的烦恼,不甚解。附原文。
[8] 译注:即有多少次push就要有多少次pop。
[9] 译注:指目录结构,即userdatum
[10] 译注:估计是lua xml parser的简写。