A. 终端机控制符

在几十年前,流行的是各种终端机(terminal),它们都遵守ANSI X3.64控制字符序列标准(还有一些公司比如IBMDECHP制定了自己的扩展标准),这些控制字符序列能帮助终端对显示的内容作一些处理,比如光标定位,字符色彩,背景色,窗口等等。

随着PC的流行,终端机被淘汰,但是原先的终端显示方式以及这些控制字符序列都被保留。人们开发出了虚拟的终端仿真程序来获得和从前一样的终端体验。自然,各种原先的终端机都有被仿真,较为流行的比如有DEC-VT100,简称VT100。在linux下可以用:

echo $TERM

来查看当前终端类型,也可以在/etc/termcap或者/etc/terminfo/中查到完整的终端类型。

Windows终端窗口的很多显示功能,都是通过win32 API来实现的。对于古老的DOSWin95/98,可通过加载ansi.sys来支持终端机控制符。下面是各版本Windows对其的支持:

WIN95:使用ANSI terminal controlconfig.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.htmlVB虽非正统之Basic,也不能算纯粹的语言,但其使用广泛,姑且忝列其中吧。

[2] http://www.muppetlabs.com/~breadbox/bf/,有趣的Brain Fuck语言。

[3] 终端类型、控制符,参见附录A

[4] 译注:POSIXunix的工业标准,regexp最初来源于unixPOSIXregexp也作了规范。

[5]译注:下面译为捕获或者capture,模式中捕获的概念指,使用临时变量来保存匹配的子模式,常用于向前引用。

[6] 译注:得到类似于十六进制编辑器的一个界面显示

[7] 译者按:好像是巴西人的烦恼,不甚解。附原文。

[8] 译注:即有多少次push就要有多少次pop

[9] 译注:指目录结构,即userdatum

[10] 译注:估计是lua xml parser的简写。


相关链接:
lua程序设计目录 - 中国lua开发者 - lua论坛