terminfo 目录
用途
包含已编译的 特温福 源文件。
描述
特尔特尔福 是用于描述终端功能的已编译数据库。 在 特温福 源文件中通过条目描述了终端。 每个条目都包含有关特定终端或一组公共终端的功能的信息。 功能包括可以执行的操作,填充要求,光标定位,命令序列和初始化序列。
已编译的 特温福 数据库由某些应用程序 (例如 curse 和 vi) 使用,这些应用程序必须具有终端知识,但不希望依赖于终端。
本文描述了 特温福 源文件格式,并介绍了以下主题:
- 源文件条目
- 功能类型
- 准备描述
- 基本功能
- 参数化的字符串
- 光标移动
- 区域清除
- 滚动
- 插入或删除字符
- 突出显示,突出显示和可视钟声
- 小键盘
- 选项卡和初始化
- 其他字符串
- 状态行
- 折线图
- 颜色操作
- 特殊情况
- 类似终端
- 打印机功能
- 数据库文件名
提供了 特温福 源文件中的 示例 。
本文对 特温福 源文件格式进行了说明。 在 特温福 描述可供应用程序使用之前,必须使用 特克 命令来编译它所在的 特温福 源文件。 使用 特克 命令将导致创建一个或多个二进制文件,每个终端一个或多个二进制文件。 目录 (通常为 /usr/share/lib/terminfo) 中 terminfo 二进制文件的集合称为 terminfo 数据库或 terminfo。
源文件条目
您可以编辑或修改源文件。 一个源文件可以包含一个或多个终端描述或条目。 特温福 源文件有一个 .ti 后缀。 源文件的示例包括描述 IBM® 终端的 /usr/share/lib/terminfo/ibm.ti 文件和描述 DEC 终端的 /usr/share/lib/terminfo/dec.ti 文件。
请参阅 聚焦 命令以获取终端的源描述 (仅当二进制文件可用时)。
特温福 源文件中的每个条目都由多个以逗号分隔的字段组成。 逗号之间的空格将被忽略。 以下示例显示了一个源文件条目:
ibm6155-113|IBM 6155 Black & White display,
font0=\E[10m, font1=\E[11m, font2=\E[12m,
bold=\E[12m, sgr0=\E[0;10m,
cols#113, lines#38,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
blink@, use=ibm5151, 通过在每个后续行的开头放置空格,条目可以继续进入多行。 要创建注释行,请以 # (井号) 字符作为行开头。 要注释掉单个终端功能,请在功能名称前添加一个句点。
每个终端的第一个字段 (或行) 给出了用于识别终端的各种名称,由 | (管道符号) 字符分隔。 第一个名字应该是该终端最常见的缩写。 (此名称是设置 TERM 环境变量时最常使用的名称。) 给出的姓氏应该是一个完整标识终端的长名称。 所有其他名称都被理解为终端名称的同义词。 除最后一个名称之后的所有名称都不应包含空格。 对于可读性,姓氏可能包含空白。 所有名称都应该唯一。
其余字段标识了终端的功能。
在选择终端名称时,您应该遵循一些约定。 根名称应该表示该终端的特定硬件类。 请勿在根名称中使用连字符,但要避免与其他名称冲突的同义词。 要指示硬件首选项或用户首选项的可能方式,请附加一个-(减号) 和下列其中一个后缀:
| 后缀 | 含义 | 示例 |
|---|---|---|
| -是啊 | 具有自动页边距 (通常为缺省值) | 终点站-是啊 |
| -M | 单色方式 | 终点站命令 |
| -w | 宽方式 (超过 80 列) | 终点站-w |
| -南 | 无自动页边距 | 终点站-南 |
| -N | 屏幕上的行数 | 终端-60 |
| -那 | 无箭头键 (保留在本地) | 终点站-那 |
| -NP | 内存的页面数 | 终端-4p |
| -rv | 反转视频 | 终点站-rv |
| -s | 状态行模拟。 该终端允许将通常属于屏幕一部分的一行或多行用于状态行。 这与具有永久专用状态行的终端不相同。 | 终点站-s |
| -灌篮 | 未知方式。 此条目可用于定义终端的一般描述,该终端具有上述几种方式。 其他条目将使用未知条目作为基本描述,并添加相应的定制内容。 请参阅 use= 字段。 | 终点站-灌篮 |
处于 132 列方式的终端将为 终点站-w。
功能类型
特温福 条目可以定义任意数量的功能。 所有功能都属于以下三种类型之一:
本文提供了用于记录功能类型的表格。 所有表格都列出以下内容:
| 项 | 描述 |
|---|---|
| 变量 | 应用程序访问功能时使用的名称。 |
| Cap 名称 | 简短功能名称。 此名称在 特温福 数据库文本中使用,并由创建或编辑源文件条目的人员使用。 您可以使用 图特 命令来输出特定终端的功能的值。 |
| I.Code | 已编译数据库中使用的 2 个字母的内码。 此代码始终对应于 特姆卡 功能名称。 |
| 描述 | 此功能的描述。 |
功能名称没有绝对长度限制。 采用 5 个字符的非正式限制,以使其保持简短,并允许大写源文件中的选项卡对齐。 尽可能将名称选择为与 1979 年的 ANSI X3.64 标准相同或相似。
有关根据功能的各种功能的详细描述,请参阅:
布尔功能
布尔功能指示该终端具有某些特定功能。 例如,终端描述中的 上午 功能指示终端具有自动页边距 (例如,当到达行结束时自动新建行)。 以下是 Boolean 功能:
| 变量 | Cap 名称 | I.Code |
|---|---|---|
|
bw | bw |
|
上午 | 上午 |
|
布采 | 乌特 |
|
ccc | 抄送 |
|
希普 | Xs |
|
希帕 | YA |
|
Cpix | YF |
|
克拉克斯姆 | YB |
|
Xt | Xt |
|
塞尼勒 | 新 |
|
EO | EO |
|
格恩 | 格恩 |
|
香港 | 香港 |
|
奇茨 | HC |
|
公里 | 公里 |
|
daisy | YC |
|
HS | HS |
|
hls | 赫尔 |
|
in | in |
|
利皮克斯 | YG |
|
DA | DA |
|
db | db |
|
米尔 | MI |
|
消息 | 毫秒 |
|
恩克松 | 全国 |
|
Xsb | 西布 |
|
全国人民代表大会 | NP |
|
恩德斯克尔 | ND |
|
恩勒姆姆克 | NR |
|
操作系统 | 操作系统 |
|
mc5i | 5i |
|
克夫帕 | YD |
|
Sam | YE |
|
埃斯洛克 | es |
|
Hz | Hz |
|
乌勒 | 乌勒 |
|
xon | Xo |
数字功能
数字功能后面跟着 # (井号) 字符和数字值。 cols#80 功能指示该终端具有 80 列。 以下是一些数字功能:
| 变量 | Cap 名称 | I.Code |
|---|---|---|
|
bufsz | 耶 |
|
COLS | co |
|
斯平赫 | Yc |
|
斯皮夫 | 钇 |
|
它 | 它 |
|
勒赫 | 勒赫 |
|
卢 | 卢 |
|
行 | 李 |
|
勒姆 | 勒姆 |
|
Xmc | sg |
|
ma | ma |
|
颜色 | co |
|
马德尔 | 耶德 |
|
跳马 | 耶 |
|
对 | pa |
|
世界 | MW |
|
姆奇 | 伊夫 |
|
姆尔斯 | 耶格 |
|
恩茨夫 | NC |
|
恩拉布 | NL |
|
恩平 | 是啊 |
|
orc | Yi |
|
orhi | 于克 |
|
orl | 伊杰 |
|
orvi | 伊尔 |
|
PB | PB |
|
cps | 伊姆 |
|
VT | VT |
|
维德奇 | YN |
|
世界 | ws |
字符串功能
el=\EK$<3>放置 子例程为延迟提供填充字符。 延迟可以是一个数字,例如,20或后跟 * (星号) 的数字,例如:3*. 星号指示必需的填充与受操作影响的行数成比例。 给定的数字表示每个受影响单元的必需填充。 (对于插入字符,该因子是受影响的行数 1 始终为 1 ,除非终端具有 塞尼勒 功能并且软件支持该功能)。 如果指定星号,那么有时提供格式为 A.B的延迟是很有用的,例如3.5,用于指定每个单元的延迟为 10 分之几毫秒。 您只能指定一个小数位。
特温福 数据库在字符串值功能中提供了多个转义序列,以便于对字符进行编码。 可识别以下转义代码:
| 转义代码 | 含义 |
|---|---|
| \E, \e | 转义 |
| \n | 换行 |
| \l | 换行 |
| \r | 回车 |
| \t | 制表符 |
| \b | 退格 |
| \f | 换页符 |
| \s | 空间 |
| \^ | 插入标记 |
| \\ | 反斜杠 |
| \, | 逗号 |
| \: | 冒号 |
| \全国 | 具有八进制值 全国 的字符 |
| ^X | Ctrl-X 表示任何适当的 X |
| \0 | 空字符。\0实际生成 \200 ,它不会结束字符串,但在大多数终端上表现为空字符。 |
在 "字符串功能" 表中使用以下约定:
- (G)
- 指示通过 特帕尔姆传递该字符串,并提供参数 (#i)。
- (*)
- 指示可以根据受影响的行数进行填充。
- (#i)
- 指示第 i 个参数。
表 4. 字符串功能 变量 Cap 名称 I.Code - 应用程序定义的字符串
- 应用程序定义的终端字符串。
阿普海峡 za - 阿斯恰尔斯
- 图像字符到字符的备用字符集映射。
阿克斯 交流电 (ac) - 返回标签页
- 后面的选项卡。
cbt BT - 响铃
- 产生声音信号 (响铃)。
BEL 布尔 - box_chars_1
- 框字符,主集。
box1 博克斯 - box_chars_2
- 框字符,备用集。
box2 操作者 - box_attr_1
- box_chars_1的属性。
batt1 Bx - box_attr_2
- box_chars_2的属性。
batt2 按照 - 换行符
- 指示回车符。 (*)
cr cr - 调整字符间距
- 更改每英寸字符数。
cpi ZA - 行距调整
- 更改每英寸的行数。
lpi ZB - change_res_horz
- 更改水平分辨率。
chr ZC - change_res_vert
- 更改垂直分辨率。
cvr 哈哈 - 字符填充
- 指定处于替换方式时的字符填充。
龙普 rP - 更改滚动区域
- 将区域滚动到行 #1 到 #2。 (G)
Csr cs - 字符集名称
- 字符集名称的列表。
csnm 齐 - 清除所有标签页
- 清除所有制表符停止位。
tbc ct - clear_margin
- 清除左右软边距。
mgc MC - 清除屏幕
- 清除屏幕并将光标置于主位置。 (*)
清除 (clear) cl - 克勒博尔
- 清除到行的开头,包括在内。
el1 CB - 克列尔
- 清除到行尾。
el CE - 克勒厄德
- 清除到屏幕的末尾。(*)
ed cd - color_bg_0
- 背景色 0 ,黑色。
colb0 d0 - color_bg_1
- 背景色 1 ,红色。
colb1 d1 - color_bg_2
- 背景色 2 ,绿色。
colb2 d2 - color_bg_3
- 背景色 3 ,棕色。
colb3 d3 - color_bg_4
- 背景色 4 ,蓝色。
colb4 d4 - color_bg_5
- 背景色 5 ,品红色。
colb5 d5 - color_bg_6
- 6 背景色 6 ,青色。
colb6 d6 - color_bg_7
- 背景色 7 ,白色。
colb7 d7 - color_fg_0
- 前景色 0 ,黑色。
colf0 c0 - color_fg_1
- 前景色 1 ,红色。
colf1 c1 - color_fg_2
- 前景色 2 ,绿色。
colf2 c2 - color_fg_3
- 前景色 3 ,棕色。
colf3 c3 - color_fg_4
- 前景色 4 ,蓝色。
colf4 c4 - color_fg_5
- 前景色 5 ,品红色。
colf5 c5 - color_fg_6
- 前景色 6 ,青色。
colf6 c6 - color_fg_7
- 前景色 7 ,白色。
colf7 c7 - 列地址
- 设置光标列。 (G)
HPA ch - 命令字符
- 表明可设置终端命令原型字符。
cmdch CC - 创建窗口
- 将 win #1 定义为从 #2, #3 到 #4, #5。
中温 CW - 光标地址
- 指示屏幕相对光标移动行 #1,列 #2。 (G)
cup 厘米 - 光标向下
- 将光标下移一行。
cud1 do - 光标_首页
- 将光标移动到起始位置 (如果没有 杯 寻址)。
主 湖 - cursor_不可视
- 使光标不可见。
奇维 vi - 光标左移
- 将光标向左移动一个空格。
cub1 LE - 光标内存地址
- 指示内存相对游标寻址。 (G)
姆尔杯 CM - 光标正常
- 使光标显示为正常 (撤销 vs 或 vi)。
克诺姆 ve - 右箭头
- 指示非破坏性空间 (光标向右)。
cuf1 :NONE. - 光标指向左下角
- 将光标移动到最后一行的第一列 (如果没有 杯 寻址)。
LL LL - 光标上移
- 将光标上移一行。
cuu1 运行 - 光标可见
- 使光标非常可视。
茨维什 对比 - 定义字符
- 在字符集中定义一个字符。
德夫克 泽 - 删除字符
- 删除字符。 (*)
dch1 DC - 删除行
- 删除行。 (*)
dl1 dl - 拨号电话
- 拨打电话号码 #1。
dial 直接投资 - 状态栏
- 禁用状态行。
德尔 DS - 显示时钟
- 显示一天中的时钟。
德勒克 DK - 下半行
- 指示下标 (向前 1/2 换行)。
HD HD - ena_acs
- 启用备用字符集。
埃纳奇 eA - 进入替代字符集模式
- 启动备用字符集。
斯马奇 as - 进入AM模式
- 开启自动页边距。
萨马姆 SA - 进入闪烁模式
- 启用闪烁。
闪烁 MB - 进入粗体模式
- 启用粗体 (额外亮) 方式。
粗体 md - 进入底部模式
- 启动底线模式。 此字符串功能是绘制表的辅助功能,并且仅对 Aixterm 和 艾克斯代姆 终端定义有效。
布特姆尔 BM - 进入加拿大模式
- 开始使用 杯 地址的程序。
斯姆杯 蒂 - 进入删除模式
- 启动删除方式。
斯姆直流 dm - 进入尺寸模式
- 启用半亮模式。
灰显 mh - 进入双倍宽度模式
- 启用双宽打印。
swidm ZF - 输入草稿质量
- 设置草稿质量打印。
斯德尔夫克 ZG - 进入插入模式
- 启动插入方式。
斯米尔 im - 进入斜体模式
- 启用斜体字。
锡特姆 zh - enter_leward_mode
- 启用向左的 carrige 运动。
斯莱姆 兹尔 - 进入_倒数模式
- 启动左垂直线方式。 此字符串功能是绘制表的辅助功能。 仅对 Aixterm 和 艾克斯代姆 终端定义有效。
勒特 lv - 进入微模式
- 启用微运动功能。
斯米克姆 ZJ - 输入近似字母质量
- 设置近字母质量打印。
斯纳勒格 ZK - 进入_普通质量
- 设置正常质量打印。
斯纳姆格 ZL - 进入受保护模式
- 启用受保护方式。
普罗特 小 - 进入反向模式
- 启用反向视频方式。
rev mr - 进入垂直模式
- 启动右垂直线方式。 此字符串功能是绘制表的辅助功能,并且仅对 Aixterm 和 艾克斯代姆 终端定义有效。
勒弗特 雷夫 - 进入安全模式
- 启用空白方式 (字符不可见)。
因维斯 mk - 进入暗影模式
- 启用影子打印。
什姆 ZM - 进入突出显示模式
- 开始备用方式。
斯姆索 so - 进入下标模式
- 启用下标打印。
苏姆 ZN - enter_supercript_mode
- 启用上标打印。
苏普姆 ZO - 进入顶部行模式
- 启动顶行方式。 此字符串功能是绘制表的辅助功能,并且仅对 Aixterm 和 艾克斯代姆 终端定义有效。
托普勒 TP - 进入下划线模式
- 启动下划线方式。
斯穆尔 us - 向上模式
- 启用向上回车运动。
sum ZP - 进入_XON_模式
- 开启 xon/xoff 握手。
斯姆克森 SX - Erase_chars
- 擦除 #1 个字符。 (G)
ech ec - 退出替代字符集模式
- 结束备用字符集。
麦克斯 ae - 退出AM模式
- 关闭自动页边距。
拉马姆 RA - 退出属性模式
- 禁用所有属性。
sgr0 我 - 退出加拿大模式
- 结束使用 杯 寻址的程序。
Rmcup TE - 退出删除模式
- 结束删除方式。
Rmdc ed - 退出双倍宽度模式
- 禁用双宽打印。
rwidm ZQ - 退出插入模式
- 结束插入方式。
米尔 埃伊 - 退出斜体模式
- 禁用斜体字。
里特姆 ZR - exit_leward_mode
- 启用右 (正常) 运输运动。
勒姆 ZS - 退出微模式
- 禁用微运动功能。
米克姆 ZT - 退出_阴影模式
- 禁用影子打印。
雷什姆 ZU - 退出突出显示模式
- 结束标准输出方式。
姆姆索 地 - 退出下标模式
- 禁用下标打印。
里苏姆 ZV - exit_supercript_mode
- 禁用上标打印。
苏普姆 ZW - 退出下划线模式
- 结束下划线方式。
勒穆尔 厄 - 向上退出模式
- 启用向下 (正常) 腐肉运动。
朗姆 ZX - 退出_xon_模式
- 关闭 xon/xoff 握手。
Rmxon RX - 闪屏
- 指示可视铃 (不能移动光标)。
闪烁 维卜 - 固定暂停
- 暂停 2 到 3 秒。
pause PA - 闪存钩子
- 闪烁开关挂钩。
挂钩 自由 - font_0
- 选择字体 0。
font0 f0 - font_1
- 选择字体 1。
font1 f1 - font_2
- 选择字体 2。
font2 f2 - font_3
- 选择字体 3。
font3 f3 - font_4
- 选择字体 4。
font4 f4 - font_5
- 选择字体 5。
font5 f5 - font_6
- 选择字体 6。
font6 f6 - font_7
- 选择字体 7。
font7 f7 - 表单订阅源
- 弹出页面 (硬拷贝终端)。 (*)
FF FF - 来自状态行
- 从状态行返回。
国际 fs - 转到窗口
- 转至窗口 #1。
温戈 WG - 挂起
- 挂断电话。
黑 HU - init_1string
- 初始化终端。
is1 i1 - init_2string
- 初始化终端。
is2 是 - init_3string
- 初始化终端。
is3 i3 - Init_file
- 标识包含 是 个长初始化字符串的文件。
if if - 初始化程序
- 查找用于初始化的程序。
伊普罗格 iP - 初始化颜色
- 初始化颜色定义。
国际 IC - 初始化配对
- 初始化颜色对。
初始化 IP - 插入字符
- 插入字符。
ich1 IC - 插入行
- 添加新的空白行。 (*)
il1 阿尔 - 插入填充
- 在插入的字符后插入填充板。 (*)
ip ip - key_a1
- 指定小键盘的左上角。
ka1 K1 - key_a3
- 指定小键盘的右上角。
ka3 K3 - 关键操作
- 按操作键发送。
卡特 kJ - key_b2
- 指定小键盘的中心。
kb2 K2 - 退格键
- 由退格键发送。
克布斯 kb - key_beg
- 开始键。 KEY_BEG
克贝格 @1 - key_btab
- 由 backtab 键发送。 KEY_BTAB
克布特 kB - key_c1
- 指定小键盘左下方。
kc1 K4 - key_c3
- 指定小键盘的右下角。
kc3 K5 - key_cancel
- 取消密钥。 保留取消
克坎 @2 - key_catab
- 通过 clear-all-tabs 键发送。
克特布茨 卡 - 清除密钥
- 通过清除屏幕或擦除键发送。
克利尔 kC - 关闭按钮
- 关闭键。 关闭 KEY_CLOSE
克洛 @3 - 键盘快捷键
- 命令请求键。
克奇德 @4 - 键盘快捷键面板
- 命令窗格键。
共产党 /communist party @7 - 密钥副本
- 复制密钥。 KEY_COPY
克皮 @5 - 创建密钥
- 创建密钥。 密钥创建
克尔特 @6 - key_ctab
- 通过清除 Tab 键发送。
kctab 克特 - key_dc
- 由删除字符键发送。
kdch1 kD - key_dl
- 由删除行键发送。
kdl1 kL - key_do
- 执行请求键。
克多 基 - 键关闭
- 由终端向下箭头键发送。
kcud1 克德 - 关键电子身份认证
- 由 米尔 或 斯米尔 以插入方式发送。
克尔米尔 kM - 键结束
- 结束键。 KEY_END
肯德 @7 - 按下回车键
- 输入/发送 (不可靠)。 KEY_ENTER。
肯特 @8 - key_eol
- 由 clear-to-end-of-line 键发送。
克尔 kE - 关键_eos
- 由清除到屏幕结束键发送。
已标记 kS - key_exit
- 退出键。 KEY_EXIT。
克特 @9 - key_f0
- 由功能键 F0发送。
kf0 k0 - key_f1
- 由功能键 F1发送。
kf1 k1 - key_f2
- 由功能键 F2发送。
kf2 k2 - key_f3
- 由功能键 F3发送。
kf3 k3 - key_f4
- 由功能键 F4发送。
kf4 k4 - key_f5
- 由功能键 F5发送。
kf5 k5 - key_f6
- 由功能键 F6发送。
kf6 k6 - key_f35
- 由功能键 35 发送。 KEY_F (35)
kf35 Fp - key_f36
- 由功能键 36 发送。 KEY_F (36)
kf36 Fp - key_f37
- 通过功能键 37 发送。 KEY_F (37)
kf37 Fq - key_f38
- 由功能键 38 发送。 KEY_F (38)
kf38 FR - key_f39
- 由功能键 39 发送。 KEY_F (39)
kf39 FS - key_f40
- 由功能键 40 发送。 KEY_F (40)
kf40 FT - key_f41
- 由功能键 41 发送。 KEY_F (41)
kf41 FU - key_f42
- 由功能键 42 发送。 KEY_F (42)
kf42 FV - key_f43
- 由功能键 43 发送。 KEY_F (43)
kf43 FW - key_f44
- 由功能键 44 发送。 KEY_F (44)
kf44 外汇 - key_f45
- 由功能键 45 发送。 KEY_F (45)
kf45 财年 - key_f46
- 由功能键 46 发送。 KEY_F (46)
kf46 FZ - key_f47
- 由功能键 47 发送。 KEY_F (47)
kf47 FA - key_f48
- 由功能键 48 发送。 KEY_F (48)
kf48 FB - key_f49
- 通过功能键 49 发送。 KEY_F (49)
kf49 FC - key_f50
- 由功能键 50 发送。 KEY_F (50)
kf50 FD - key_f51
- 由功能键 f51发送。 KEY_F (51)
kf51 FE - key_f52
- 由功能键 f52发送。 KEY_F (52)
kf52 FF - key_f53
- 由功能键 f53发送。 KEY_F (53)
kf53 FG - key_f54
- 由功能键 f54发送。 KEY_F (54)
kf54 fi - key_f55
- 由功能键 f55发送。 KEY_F (55)
kf55 菲 - key_f56
- 由功能键 f56发送。 KEY_F (56)
kf56 Fk - key_f57
- 由功能键 f57发送。 KEY_F (57)
kf57 弗勒 - key_f58
- 由功能键 f58发送。 KEY_F (58)
kf58 FM - key_f59
- 由功能键 f59发送。 KEY_F (59)
kf59 芬 - key_f60
- 由功能键 f60发送。 KEY_F (60)
kf60 福 - key_f61
- 由功能键 f61发送。 KEY_F (61)
kf61 Fp - key_f62
- 由功能键 f62发送。 KEY_F (62)
kf62 Fq - key_f63
- 由功能键 f63发送。 KEY_F (63)
kf63 周五 - 键查找
- 查找密钥。 KEY_FIND
克恩德 @0 - 键盘帮助
- 帮助键。
赫尔普 Kq - key_home
- 通过主键发送。
克 home 赫 - key_ic
- 由 insert-character/ enter-insert-mode 键发送。
kich1 kI - key_il
- 由插入行键发送。
kil1 kA - 左键
- 由终端左箭头键发送。
kcub1 KL - key_ll
- 通过 Home-down 键发送。
克尔 kH - 关键标记
- 标记键。 KEY_MARK
克姆尔克 %2 - 关键信息
- 消息密钥。 关键信息
消息 %3 - 键盘移动
- 移动键。 关键移动
克莫夫 %4 - key_newline
- 新建行键。
克尼勒 KN - key_next
- 下一个对象键。 KEY_NEXT
克尼特 %5 - 下一窗格
- 下一个窗格键。
克恩 克夫 - 关键页码
- 由下一页键发送。
knp kN - key_open
- 打开密钥。 已打开
科潘 %6 - 关键选项
- 选项键。 保留选项
科特 %7 - 关键页面
- 由上一页键发送。
克普 kP - 上一窗格键
- 由上一个窗格键发送。
克普恩 kV - 上一个命令键
- 由上一个命令键发送。
kpcmd Kp - key_previous
- 上一个对象键。 KEY_PREVIOUS
克普尔夫 %8 - 键打印
- 打印或复制。 保留打印
克普特 %9 - key_quit
- 退出密钥。
克特克 kQ - 键盘重做
- 重做键。 KEY_REDO
克尔多 %0 - 关键引用
- 引用键。 KEY_XX_ENCODE_CASE_ONE Reference
克雷夫 &1 - KEY_REFRESH
- 刷新密钥。 KEY_REFRESH
克尔夫尔 &2 - key_replace
- 替换键。 密钥替换
卡尔普勒 &3 - 键盘重启
- 重新启动密钥。 KEY_RESTART
克尔斯特 &4 - key_resume
- 恢复键。 KEY_RESUME
克雷斯 &5 - 右键
- 由终端向右箭头键发送。
kcuf1 kr - 密钥保存
- 保存密钥。 KEY_SAVE
卡萨夫 &6 - key_sbeg
- 已转换开始键。 KEY_SBEG
kBEG &9 - key_取消
- 已移动取消键。 KEY_SCANCEL
kCAN &0 - key_scommand
- 已转移命令键。 KEY_SCOMMAND
kCMD *1 - 密钥检查
- 已转移复制键。 关键检查
kCPY *2 - key_screate
- 已转移创建键。 保留 SCREATE
kCRT *3 - 键盘滚动左键
- 向左滚动。
克什尔 kz - 键盘滚动右键
- 向右滚动。
克什克尔 kZ - 关键SDC
- 已移动删除字符键。 KEY_SDC
kDC *4 - 关键SDL
- 已移动删除行键。 KEY_SDL
kDL *5 - 键选择
- 选择密钥。
克什勒 *6 - 键盘发送
- 已转换结束键。 KEY_SEND
kEND *7 - key_seol
- 已移动清除行键。 KEY_SEOL
kEOL *8 - 关键退出
- 已移动出口键。 KEY_SEXIT
kEXT *9 - 密钥 sf
- 由 scroll-forward/ scroll-down 键发送。
善良 kF - key_sf1
- 特殊功能键 1.
ksf1 S1 - key_sf2
- 特殊功能键 2.
ksf2 S2 - key_sf3
- 特殊功能键 3.
ksf3 S3 - key_sf4
- 特殊功能键 4.
ksf4 S4 - key_sf5
- 特殊功能键 5.
ksf5 S5 - key_sf6
- 特殊功能键 6.
ksf6 S6 - key_sf7
- 特殊功能键 7.
ksf7 S7 - key_sf8
- 特殊功能键 8.
ksf8 S8 - key_sf9
- 特殊功能键 9.
ksf9 S9 - key_sf10
- 特殊功能键 10.
ksf10 S0 - key_sfind
- 已转移查找键。 KEY_SFIND
kFND *0 - key_shelp
- 已转移帮助键。 KEY_SHELP
kHLP #1 - key_shome
- 已转移主键。 KEY_SME
kHOM #2 - 密钥-sic
- 已移动输入键。 KEY_SIC
kIC #3 - 键盘左箭头键
- 已移动左箭头键。 左键
kLFT #4 - key_smap_in1
- 特殊映射键 1 的输入。
kmpf1 克夫 - key_smap_in2
- 特殊映射键 2 的输入。
kmpf2 Kw - key_smap_in3
- 特殊映射键 3 的输入。
kmpf3 KX - key_smap_in4
- 特殊映射键 4 的输入。
kmpf4 基 - key_smap_in5
- 特殊映射键 5 的输入。
kmpf5 克兹 - key_smap_in6
- 特殊映射键 6 的输入。
kmpf6 kr - key_smap_in7
- 特殊映射键 7 的输入。
kmpf7 K - key_smap_in8
- 特殊映射键 8 的输入。
kmpf8 Kt - key_smap_in9
- 特殊映射键 9 的输入。
kmpf9 KU - key_smap_out1
- 映射键 1 的输出。
kmpt1 千伏 - key_smap_out2
- 映射键 2 的输出。
kmpt2 KW - key_smap_out3
- 映射键 3 的输出。
kmpt3 KX - key_smap_out4
- 映射键 4 的输出。
kmpt4 KY - key_smap_out5
- 映射键 5 的 5。
kmpt5 KZ - key_smap_out6
- 映射键 6 的输出。
kmpt6 KR - key_smap_out7
- 映射键 7 的输出。
kmpt7 KS - key_smap_out8
- 映射键 8 的输出。
kmpt8 KT - key_smap_out9
- 映射键 9 的输出。
kmpt9 KU - 关键信息
- 已移动消息键。 KEY_SMMESSAGE
kMSG %a - key_smove
- 已移动移动键。 KEY_SMOVE
kMOV %b - 下一个键
- 已切换下一个键。 KEY_SNEXT
kNXT %c - key_soptions
- 已转换选项键。 KEY_SOPTIONS
kOPT %d - key_sprevious
- 转移了先前的键。 KEY_SPREVIOUS
kPRV %e - 关键冲刺
- 已移动打印键。 关键冲刺
kPRT %f - 密钥-sr
- 通过滚动-后退键发送。
克里 kR - 键盘重做
- 已转移重做键。 KEY_SREDO
kRDO %g - key_replace
- 已移动替换键。 密钥替换
kRPL %h - key_sright
- 已移动右箭头键。 KEY_SRIGHT
kRIT %i - 关键简历
- 已移动恢复键。 密钥摘要
kRES %j - 密钥保存
- 已移动保存键。 KEY_SSAVE
kSAV !1 - key_suspend
- 已转换暂挂键。 KEY_SSUPEND
kSPD !2 - 关键稳定器
- 按 set-tab 键发送。
赫茨 kT - key_sundo
- 已转移撤销键。 KEY_SODO
kUND !3 - key_suspend
- 暂挂密钥。 键暂挂
克什普德 &7 - key_tab
- Tab 键。
克陶布 ko - 撤销键
- 撤销密钥。 KEY_UNDO
孔德 &8 - 键盘按键释放
- 由终端向上箭头键发送。
kcuu1 KU - 键盘_本地
- 结束小键盘传输方式。
雷姆克 ke - 键盘_发送
- 将终端置于小键盘传输方式。
斯姆克 克斯 - lab_f0
- 标签功能键 F0,如果不是 F0。
lf0 l0 - lab_f1
- 标签功能键 F1,如果不是 F1。
lf1 l1 - lab_f2
- 标签功能键 F2,如果不是 F2。
lf2 l2 - lab_f3
- 标签功能键 F3,如果不是 F3。
lf3 l3 - lab_f4
- 标签功能键 F4,如果不是 F4。
lf4 l4 - lab_f5
- 标签功能键 F5,如果不是 F5。
lf5 l5 - lab_f6
- 标签功能键 F6,如果不是 F6。
lf6 l6 - lab_f7
- 标签功能键 F7,如果不是 F7。
lf7 l7 - lab_f8
- 标签功能键 F8,如果不是 F8。
lf8 l8 - lab_f9
- 标签功能键 F9,如果不是 F9。
lf9 l9 - lab_f10
- 标签功能键 F10,如果不是 F10。
lf10 拉 - 标签格式
- 标签格式。
弗伦 LF - 标签关闭
- 关闭软标签。
勒姆尔恩 LF - 标签
- 开启软标签。
斯姆恩 LO - 元
- 启用元模式(第8位)。
斯姆 mm - 元关闭
- 禁用元方式。
rmm 月 - 微列地址
- 从左边移动 N 个步骤。
姆帕 ZY - 缩微
- 下移 1 步。
mcud1 ZZ - 微左
- 向左移动 1 步。
mcub1 扎 - 微右
- 向右移动 1 步。
mcuf1 兹比 - 微行地址
- 从顶部移动 N 个步骤。
姆夫帕 日奇 - 微启动
- 上移 1 步。
mcuu1 兹德 - 新行
- 执行换行功能 (行为与回车符后跟换行类似)。
nel 全国 - 引脚顺序
- 将软件位与打印头引脚匹配。
波尔德 泽 - 原始颜色
- 原始颜色。
oc oc - 原始对
- 原始颜色对。
op op - pad_char
- 填充字符 (而不是 NULL)。
填充 (pad) pc - 帕尔马-德赫
- 删除 #1 个字符。 (G)
dch DC - 删除行参数
- 删除 #1 行。 (G)
dl DL - parm_down_carsor
- 将光标下移 #1 行。 (G*)
cud DO - parm_down_micro
- 下移 N 个步骤。 (G*)
姆库德 兹夫 - 帕尔米希
- 插入 #1 个空白字符。 (G*)
ich IC - 参数索引
- 向前滚动 #1 行。 (G)
indn SF - 插入帕尔玛线
- 添加 #1 个新的空白行。 (G*)
il AL - 左光标
- 将光标向左移动 #1 个空格。 (G)
cub LE - 左侧帕玛干酪微型
- 向左移动 N 个步骤。
姆库布 日格 - parm_right_ccursor
- 将光标向右移动 #1 个空格。 (G*)
cuf RI - 右侧微型帕尔姆
- 将 N 步骤向右移动。
姆库夫 zh - 参数索引
- 向后滚动 #1 行。 (G)
林 SR - parm_up_ccursor
- 将光标上移 #1 行。 (G*)
cuu UP - 微波炉预热
- 将 N 上移。
姆库乌 Zi - 主密钥
- 程序函数键 #1 用于输入字符串 #2。
普费基 pk - 本地主键
- 用于执行字符串 #2的程序功能键 #1 。
普夫洛茨 pl - pkey_xmit
- 用于传输字符串 #2的程序功能键 #1 。
和平 px - plab_norm
- 程序标签 #1 以显示字符串 #2。
普伦 人民 - 打印屏幕
- 打印屏幕的内容。
mc0 ps - Prtr_non
- 启用 #1 字节的打印机。
mc5p pO - Prtr_off
- 禁用打印机。
mc4 pf - Prtr_on
- 启用打印机。
mc5 po - 脉冲
- 选择脉冲拨号。
脉冲 PU - 快速拨号
- 请拨打电话号码 #1,但不进行进度检测。
克迪勒 QD - 移除时钟
- 除去一天中的时钟。
Rmclk RC - 重复字符
- 重复 #1 字符 #2 次。 (G*)
代表 RP - 输入请求
- 发送下一个输入字符 (对于 pty)。
雷菲 射频 - reset_1string
- 将终端重置为已知方式。
rs1 r1 - reset_2string
- 将终端重置为已知方式。
rs2 r2 - reset_3string
- 将终端重置为已知方式。
rs3 r3 - 重置文件
- 标识包含重置字符串的文件。
罗夫 罗夫 - 恢复光标
- 将光标恢复到最后一个 斯克 (save_cursor) 的位置。
rc rc - 行地址
- 将光标定位到绝对垂直位置 (设置行)。 (G)
弗帕 cv - Save_cursor
- 保存光标位置。
sc sc - 前滚 (_S)
- 向上滚动文本。
ind SF - 滚动反向
- 向下滚动文本。
ri sr - 选择字符集
- 选择字符集。
scs 兹伊 - 设置属性
- 定义视频属性。 (G) #1-#9
sgr sa - 设置背景
- 设置背景色。
塞特卜 Sb - 设置底部边距
- 在当前行设置软 bottojm 页边距。
smgb 日克 - 设置底部边距参数
- 设置软底部边界。
smgbp 兹尔 - set_clock
- 设置一天中的时钟。
斯克尔克 SC - 设置颜色对
- 设置颜色对。
scp sp - 设置前景色
- 设置前景色。
集 SF - 设置左边距
- 设置软左页边距。
斯姆格尔 ML - 设置左边距参数
- 设置软左页边距。
smglp 兹姆 - 设置右边距
- 设置软右页边距。
斯姆格尔 MR - 设置右边距参数
- 设置软右页边距。
smgrp ZN - 设置标签页
- 在当前列的每一行中设置一个选项卡。
hts st - 设置顶部边距
- 设置当前行的上页边距。
smgt 三三 - 设置顶部边距参数
- 设置软上页边距。
smgtp 日普 - 设置窗口
- 指示当前窗口是行 #1-#2,列 #3-#4。 (G)
风 维 - 起始位图像
- 开始打印位图像图形。
斯比姆 Zq - 启动字符集定义
- 字符集的开始定义。
scsd 锆 - 停止位图像
- 结束打印位图像图形。
里比姆 日什 - 停止字符集定义
- 字符集的结束定义。
雷奇德 兹特 - 下标字符
- 可以出现在下标中的字符的列表。
苏巴克 祖 - 上标字符
- 可显示在上标中的字符的列表。
苏普奇 日夫 - 制表符
- 制表符到下一个 8 个空格的硬件制表符停止位。
ht 大 - 塞塞考塞河
- 打印这些字符中的任何一个都会导致 carrige 返回。
多克尔 祖夫 - 音调
- 选择按键式拨号。
音调 TO - 状态栏
- 移动到状态行,第 #1列。 (G)
茨尔 ts - Underline_char
- 突出显示一个字符并将其移动到其他位置。
乌克 乌克 - 上半线
- 指示上标 (反向 1/2 换行)
hu hu - user0
- 用户字符串 0。
u0 u0 - user1
- 用户字符串 1。
u1 u1 - user2
- 用户字符串 2。
u2 u2 - user3
- 用户字符串 3.
u3 u3 - user4
- 用户字符串 4。
u4 u4 - user5
- 用户字符串 5。
u5 u5 - user6
- 用户字符串 6.
u6 u6 - user7
- 用户字符串 7。
u7 u7 - user8
- 用户字符串 8。
u8 u8 - user9
- 用户字符串 9。
u9 u9 - 等待语气
- 等待拨号音。
维亚特 WA - xoff字符
- Xoff 字符。
克什夫茨 XF - xon_角色
- X-on 字符。
雄奇 XN - 零运动
- 没有针对后续字符的动议。
泽罗姆 兹克斯
准备描述
您可以通过复制并修改相似终端的描述来创建终端描述。 您可以通过 vi 编辑器来检查部分描述的准确性。 某些终端可能会显示 vi 编辑器中的错误以及 特温福 数据库提供终端描述的能力方面的缺陷。
要测试新的终端描述,请将 终端信息 (TERMINFO) 环境变量设置为包含您正在进行工作的已编译描述的目录的路径名。 然后程序检查该目录,而不是 /usr/share/lib/terminfo 目录。
要测试正确填充 (如果已知) ,请执行以下操作:
- 编辑 9600 波特处的 /etc/passwd 文件。
- 从屏幕的中间删除大约 16 行。
- 快速按下 u 键几次。如果终端无法正确显示结果,通常需要更多的填充。 您可以对插入字符执行类似的测试。注: 过度填充会使终端变慢。
基本功能
本部分描述了一些基本终端功能。 如果终端支持这些功能之一,那么该终端的 特温福 源文件条目将指示该功能。 以下列表是基本能力的列表:
| 项 | 描述 |
|---|---|
| 上午 | 指示当光标到达右页边距时,它移动到下一行的开头。 此功能还指示光标是否可以移动到屏幕的右下角之外。 |
| BEL | 产生可听信号 (如铃铛或嘟嘟声)。 |
| bw | 指示从终端的左边缘返回的退格将光标移动到上一行的最后一列。 |
| 清除 | 清除屏幕,并将光标保留在主位置。 |
| COLS | 指定终端的每一行上的列数。 |
| cr | 将光标移动到当前行的左侧边缘。 此代码通常是回车符 (Ctrl-M)。 |
| cub1 | 将光标向左移动一个空格 (例如,退格)。 |
| cuf1 | 将光标移动到右侧的一个空格。 |
| cuu1 | 将光标上移一个空格。 |
| cud1 | 将光标下移一个空格。 |
| 香港 | 指定没有软拷贝单元的打印终端。 您还应该指定 奥斯 功能。 |
| ind | 向上滚动文本。 |
| LF | 指定行订阅源。 |
| 行 | 指定阴极射线管 (CRT) 终端上的线的数量。 |
| nel | 指定一个换行符。 终端的行为就好像它接收到后跟换行的回车符一样。 |
| 操作系统 | 指示当在已被另一个字符占用的位置中显示或打印某个字符时,终端会覆盖现有字符,而不是将其替换为新字符。 奥斯 功能应用于存储作用域,打印和 APL 终端。 |
| ri | 向下滚动文本。 |
如果设置了 LINES 和 COLUMNS 环境变量,那么这些变量将覆盖 特温福 数据库中的值。
在 特温福 数据库文件中编码的本地光标移动在 CRT 终端的左边缘和上边缘未定义。 程序不应尝试在左边缘进行退格 (除非给出了 布 字符串) ,也不应尝试在本地从顶部向上进行。
要向上滚动文本,程序应转至屏幕的左下角,并发送索引字符串。 要向下滚动文本,程序将转至屏幕的左上角,并发送反向索引字符串。 索引字符串由 工业 功能指定,而反向索引字符串由 里 功能指定。 当索引字符串和反向索引字符串不在屏幕的各自角落时,它们是未定义的。
上午 功能确定在输出文本时光标是否停留在屏幕的右侧边缘,但当光标从最后一列移动到右侧 ( cuf1 功能) 时,此功能并不一定适用。 仅当定义了 布 功能时,终端才会从左边缘进行本地移动。 然后,当从左边缘向左移动 ( cub1 功能) 时,光标将转至上一行的右侧边缘。 如果终端不具有 布 功能,那么效果未定义,这对于在屏幕边缘周围绘制框很有用,例如,
如果指定了 上午 功能,那么终端具有可选择开关的自动边距。 如果终端具有移动到下一行的第一列的命令,那么您可以定义 内尔 (新线) 功能。 该命令是否清除当前行的其余部分并不重要。 因此,如果该终端没有 河 和 勒夫,那么仍可以使用其中一个或两个来制作工作 内尔 。
33 | tty33 | tty | Model 33 Teletype
bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os, xon,xxxx | x | xxxxxxxx,
am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
ind=^J, lines#24,参数化的字符串
光标寻址和其他需要参数的字符串由参数化的字符串功能描述。 这些字符串具有类似于 打印 %x 格式的转义序列。 例如,要对光标进行寻址,请使用行和列参数来指定 杯 功能。
参数化的功能包括:
| 项 | 描述 |
|---|---|
| cub1 | 将光标退格为一个空格。 |
| cup | 使用行和列参数对光标进行寻址。 行和列将从 0 开始编号,并引用用户可见的物理屏幕,而不是内存。 |
| 帕 和 弗帕 | 指示光标具有行或列绝对光标寻址: 水平位置绝对 (帕) 或垂直绝对 (弗帕)。 有时, 帕 和 弗帕 功能比较一般的双参数序列短,您可以优先使用这些功能,而不使用 杯 功能。 使用 库德, 库布, 库夫和 库乌 功能定义参数化局部运动 (例如,将 N 个空间移动到右侧) ,并使用单个参数来指示要移动的空间数。 如果终端不具有 杯 功能,那么这些功能主要有用。 |
| 工业N 和 里N | 滚动文本。 这些都是基本 工业 和 里 功能的参数化版本。 N 值是行的数量。 |
| 姆尔杯 | 指示终端具有与内存相关的游标寻址。 |
参数机制使用堆栈,并且具有特殊的 % (百分号) 代码来处理堆栈。 通常,序列将其中一个参数推送到堆栈上,然后以某种格式进行打印。 通常,需要执行更复杂的操作。 这些编码有以下含义:
| 项 | 描述 |
|---|---|
| %% | 输出 % (百分号)。 |
| % [[:] flags] [width [.精度]] [doxXs] | 与 普林特夫 命令中一样,标志是 [- + # ] 和空格。 |
| %d | 像在 普林特夫 命令中一样打印 pop () (堆栈中的数字字符串)。 |
| %2d | 打印类似于 %2d 的 pop () (从堆栈输出至少 2 位数字)。 |
| %3d | 打印类似 %3d 的 pop () (从堆栈输出至少 3 位数字)。 |
| %02d | 像在 普林特夫 命令中一样 2 (输出 2 位数字)。 |
| %03d | 与 普林特夫 命令一样打印 (输出 3 位数字)。 |
| %c | Print pop () 给出 %c (来自堆栈的字符输出)。 |
| %s | Print pop () 给出 %s (来自堆栈的字符串输出)。 |
| %p [一] | 将第 一个参数推送到堆栈上 1 其中 一 是介于 1 到 9 之间的数字。 |
| %P [a-z] | 将变量 [a-z] 设置为 pop () (堆栈的变量输出)。 |
| %g [a-z] | 获取变量 [a-z] 并将其推送到堆栈。 |
| % ' c | 字符常量 C。 |
| %{nn} | 整数常量 林。 |
| %l | Push strlen (pop ()) |
| % +%-% *%/%m | 算术运算符 (%m 是模数) :push (pop () 操作 pop ())。 |
| %& %| %^ | 位操作: push (pop () 操作 pop ())。 |
| %= %> %< | 逻辑操作: push (pop () 操作 pop ())。 |
| %! %~ | 一元操作: 推送 (操作 pop ())。 |
| %i | 将 1 添加到前两个参数 (对于 ANSI 终端)。 |
| %?expr %t thenpart %e elsepart%; | if-then-else。 %e 埃尔塞部分 是可选的。 您可以像以下示例中的 Algol 68 一样进行 else-if 构造,其中 国际 表示条件和 比 主体。 |
二进制操作采用后缀形式,操作数按通常的顺序排列。 就是要搞x - 5use%gx%{5}%-.
如果您使用-(减号) 标志,%[doxXs],那么必须在% (百分号) 和-(减号) 之间放置冒号,以便将该标志与%-二进制操作,例如,%:-16.16s.
请考虑需要发送的终端\E&a12c03Y填充 6 毫秒以到达第 3 行和第 12 列。 此处,行和列的顺序是反向的,并且行和列是零填充为两位数字。 因此,此终端的 杯 功能为cup=\E&a%p2%2.2dc%p1%2.2dY$<6>.
最后一个示例是使用空字符的行和列偏移量的终端:cup=\E=%p1%'\s'%+%c%p2'\s'%+%c. 发送后\E=,此操作将推送第一个参数,将 ASCII 值推送到空格 (32) ,添加这些值 (将堆栈上的总和推送到先前两个值的位置) ,并将该值输出为字符。 然后对第二个参数执行相同的操作。 可以使用堆栈进行更复杂的算术运算。
光标移动
屏幕的左上角是主位置。 如果终端具有将光标移至起始位置的快速方法,请指定 家 能力。 使用 利 功能来指定快速到达左下角的方式。 此方法可能涉及从主位置上移 (cuu1) ,但程序本身不应执行此操作 (除非 利 执行此操作) ,因为从主位置上移的效果并不确定。
如果终端具有行或列绝对光标寻址,那么您应该指定单个 帕 功能 (上方水平位置) 和 弗帕 功能 (垂直位置绝对)。 有时,这些参数比更一般的两个参数序列要短,您可以使用它们来代替 杯 功能。
例如,如果终端具有参数化的本地移动,那么它能够将光标右移 N 个空格,您可以使用单个参数指定 库德, 库布, 库夫和 库乌 功能,以指示要移动多少个空格。 如果终端不具有 杯 功能,那么这些功能很有用。
区域清除
以下功能可清除终端的大片区域:
| 项 | 描述 |
|---|---|
| ed | 从当前位置清除到屏幕的末尾。 仅从行的第一列中定义此值。 (因此,如果一个 true Ed 不可用,那么可以通过删除大量行的请求来模拟此消息。) |
| el | 在不移动光标的情况下从当前光标位置清除到行的末尾。 |
| el1 | 从行开头清除到当前位置 (包括当前位置)。 游标未移动。 |
滚动
下面的 insert-line 和 delete-line 功能用于指示终端可以:
| 项 | 描述 |
|---|---|
| Csr | 更改滚动区域。 此功能采用两个参数: 滚动区域的顶部行和底部行。 屏幕的顶线是 0。 使用此功能后,未定义光标位置。 请参阅本节中的 斯克 和 返回码 功能。 |
| DA | 保留屏幕上方的显示屏。 如果删除了某行或滚动了屏幕,那么可以在顶部引入非空行。 此功能通常是为多页终端定义的。 |
| db | 保留屏幕下方的屏幕。 如果删除一行或反向滚动屏幕,那么终端可以将非空白行带在底部。 此功能通常是为多页终端定义的。 |
| dl1 | 删除光标所在的那一行。 仅从要删除的行上的第一个位置执行此操作。 此外, 德尔 功能将采用单个参数来指示要删除的行数。 |
| il1 | 在光标当前所在的行前面创建一个新的空白行,并将屏幕的其余部分向下滚动。 仅从行的第一个位置执行此操作。 然后光标出现在新空行上。 此外, 伊勒 功能还可以采用单个参数,指示要插入的行数。 |
| ind | 建立索引或向前滚动。 具有此功能的终端可以通过删除顶部行,并在底部添加空白行来将显示上移一行。 |
| indn | 指定要向前滚动的行数。 仅当还定义了 工业 功能时,此功能才有意义。 |
| rc | 恢复游标。 此功能对于 欧洲委员会 和 斯克 功能很有用。 |
| ri | 反向滚动。 有了这个能力,终端可以通过删除底线,在顶部增加一个空行,把屏幕下移。 |
| 林 | 指定要进行反向滚动的行数。 仅当还定义了 里 功能时,此功能才有意义。 |
| sc | 保存光标。 如果已定义,那么可以在使用 欧洲委员会 功能之前使用 斯克 功能来保存光标。 保存游标是必需的,因为在您使用 欧洲委员会 功能后未定义游标位置。 使用 返回码 功能将光标恢复到在使用 欧洲委员会 功能之前它所保持的位置。 |
| 风 | 指示终端具有将窗口定义为内存的一部分的能力。 这是具有四个参数的参数化字符串功能: 内存中的开始和结束行以及内存中的开始和结束列 (按该顺序)。 |
具有 欧洲委员会 功能的终端可以滚动部分屏幕,同时保留区域上方和下方的其他行未被触摸。 应用于区域的正向滚动将删除该区域的顶部,移动该区域并向该区域的底部添加一行。 完成滚动区域时,您应该使用 欧洲委员会 功能将滚动区域恢复到全屏。
定义了 欧洲委员会 的终端具有破坏性滚动区域。 一旦从屏幕上滚动了一行,终端就无法检索到它。 具有非破坏性滚动区域的终端可以通过反向滚动来恢复滚动的行。 除非 工业, 里, 因登, 林, 德尔和 dl1 都模拟破坏性滚动,否则,如果终端具有非破坏性滚动区域,那么请勿指定 欧洲委员会 功能。
在多页终端上,滚动可以将一条线放置在另一页上,相反方向的滚动会使该线返回。 同样,删除一行可能会导致另一个页面中的行出现在屏幕上。 多页终端应该定义 达 和 数据库 功能,以便使用滚动功能的程序可以调整其行为。
几个终端可以定义一个窗口作为内存的一部分。 对于这些类型的终端,所有清除,删除,插入和回绕命令都会影响定义了窗口的内存中的区域。
插入或删除字符
通常,终端通过两种方式之一来处理插入/删除字符操作。 最常见的插入/删除字符操作仅影响当前行上的字符,并将字符向右移动和从该行移出。 其他终端在屏幕上的类型空白和未类型空白之间进行区分。 当插入字符时,所显示的数据被移动,并且消除无类型空白。 删除所有未输入的空格后,如果您继续插入字符,那么显示的数据将换行到下一行。 删除字符时,将在行中添加一个未输入的空白以补偿已删除的字符。
通常,终端以单行方式或多行方式插入/删除字符。 这两种类型的终端也以不同方式处理无类型空间。 单行模式是最常见的模式。 在单行方式下,插入/删除字符操作仅影响当前行上的字符。 插入将字符向右移动和从行中移出。
多行方式终端可以影响多行。 在此方式下,终端对屏幕上的类型空白和未类型空白进行区分。 在多行方式终端上插入字符会使显示的数据移位,并消除无类型空白。 如果所有未输入的空格都被删除,并且您继续插入字符,那么屏幕将换行到下一行。 删除字符时,多行终端会向该行添加未输入的空格以补偿已删除的字符。
确定终端的类型
清除屏幕,然后输入以光标移动分隔的文本可帮助您确定终端执行的插入/删除操作的类型。 清除屏幕,然后按如下所示继续操作:
- 类型abc def使用本地光标移动,而不是空格,在abc与def.
- 将光标定位在abc.
- 将终端置于插入方式。
- 输入一个文本行。 如果您的输入导致abc def字符向右移动并退出显示器的右侧,终端不区分空白和无类型位置。
如果abc移动到最左边的位置。def而文字在线上向右移动,围绕着末端,到下一行,终端是第二种类型。 这由 在 功能描述,此功能表示插入空值。
虽然这两个属性 (单行插入方式与多行插入方式,以及对非类型空间的不同处理) 在逻辑上是分开的,但没有任何已知终端无法用单个属性描述其插入方式。
插入或删除字符功能
特温福 数据库描述了具有插入方式的终端以及发送简单序列以在当前行上打开空白位置的终端。 以下内容用于描述插入/删除字符的功能:
| 项 | 描述 |
|---|---|
| dch1 | 删除单个字符。 带有一个参数 N的 德赫 功能将删除 N 个字符。 |
| ech | 用空格替换指定的字符数 (从光标处开始)。 光标位置保持不变。 |
| ich1 | 在一行中打开一个空格以插入一个字符。 此序列在实际字符插入之前。 具有真实插入方式的终端将不使用此功能。 |
| ip | 指示需要后填充。 此值以毫秒为单位给出。 在插入单个字符后可能需要发送的任何其他序列都可以在此功能中提供。 |
| 米尔 | 允许在插入方式下移动光标。 有时必须在插入方式下移动光标,以删除同一行上的字符。 某些终端由于处理插入方式而可能不具有此功能。 |
| Rmdc | 退出删除方式。 |
| 米尔 | 结束插入方式。 |
| 龙普 | 指示在未处于插入方式的情况下输入的字符之间需要填充。 此功能在替换方式下使用。 |
| 斯姆直流 | 进入删除方式。 |
| 斯米尔 | 开始插入方式。 |
如果您正在为需要插入方式的终端创建 特温福 描述,并且还需要特殊代码在每个插入的字符之前,那么请定义 斯米尔/雷姆尔和 ich1 功能。 国际 功能 (具有一个参数 N) 将打开 N 个空格,以便可以插入 N 个字符。
突出显示,突出显示和可视钟声
如果您的终端具有一种或多种显示属性 (例如,突出显示,下划线和可视铃) ,那么您可以通过多种方式来显示这些属性。 突出显示 (例如,突出显示方式) 提供了一种高对比度,易于阅读的格式,增加了对错误消息和其他重要消息的强调。 下划线是将注意力集中在终端的特定部分的另一种方法。 可视铃包括诸如闪烁屏幕之类的方法。 以下功能描述了突出显示,下划线和可视钟声:
- 闪烁
- 指示终端具有闪烁突出显示方式。
- 粗体
- 指示终端具有额外亮突出显示方式。
- 奇维
- 使光标不可见。
- 克诺姆
- 显示正常光标。 此功能会使 奇维 和 茨维什 功能的效果相反。
- 茨维什
- 当光标不在底线上时,使其比正常状态更可视。
- 灰显
- 指示终端具有半亮突出显示方式。
- EO
- 指示空白擦除超值。
- 埃纳奇
- 指定用于启用备用字符集方式的命令字符串。 某些终端不能在未先接收特定命令的情况下进入备用字符集方式。 埃纳奇 功能定义该命令。
- 闪烁
- 指示终端在不移动光标的情况下对错误进行屏幕闪烁 (作为响铃替换) 的方式。
- 因维斯
- 指示终端具有空白或不可见文本突出显示方式。
- 消息
- 指示在备用方式下移动光标是安全的。 否则,在移动光标或发送新行之前,使用标准方式的程序应退出此方式。 某些终端在移动到新行或光标被寻址时自动离开站出方式。
- 恩勒姆姆克
- 指示在输出 Rmcup 序列后, 斯姆杯 序列不会恢复屏幕。 这意味着您无法将屏幕复原到输出 Rmcup之前的状态。
- 操作系统
- 指示终端可以在不擦除原始字符的情况下覆盖现有字符。 覆盖会创建一个复合字符。
- 普罗特
- 指示终端具有受保护文本方式。 这意味着终端将保护文本不被覆盖或擦除。 保护方法是终端依赖的。
- rev
- 指示该终端具有反向视频方式。
- 麦克斯
- 退出备用字符集方式。
- 姆姆索
- 退出备用方式。
- 勒穆尔
- 结束加下划线。
- sgr
- 提供用于设置任意属性组合的序列。 斯格尔 功能可以设置九个属性。 按顺序,这些属性如下所示:
- 站出来
- 加下划线
- 闪烁
- 灰显
- 粗体
- 空白
- 保护
- 备用字符集
要打开某个方式,请将其设置为非零值。 要关闭某个方式,请将其 0 为 0。 斯格尔 功能只能支持那些在终端上已存在单独功能的方式。
- sgr0
- 所有特殊方式 (包括备用字符集) 的轮次。
- 斯马奇
- 输入备用字符集方式。
- smcup 和 rmcup
- 指示终端在运行使用任何突出显示,下划线或可视铃铃功能的程序时必须处于特殊方式。 斯姆杯 功能将进入此方式,而 Rmcup 功能将退出此方式。
例如,终端具有超过一页的内存时,就会产生此需求。 如果终端只有与内存相关的游标寻址,而不是与屏幕相关的游标寻址,那么必须将屏幕大小的窗口固定到终端中,游标寻址才能正常工作。 当 斯姆杯 功能设置要由 特温福 数据库文件使用的命令字符时,也会使用此参数。
- 斯姆索
- 进入备用方式。
- 斯穆尔
- 开始加下划线。
- 乌克
- 对当前字符进行下划线,并将光标向右移动一个空格。
- 乌勒
- 指示终端正确地生成带下划线的字符 (不需要特殊代码) ,即使它没有叠印。
- Xmc
- 如果进入或退出标准方式的功能在屏幕上留下空格,那么指示剩余的空格数。
突出显示,覆盖和突出显示
您应该选择一种显示方法作为 "站出来" 方式,并使用它来突出显示错误消息和您想要引起注意的其他类型的文本。 例如,您可以单独选择反向视频加半亮视频或反向视频。 斯姆索 和 姆姆索 功能提供了进入和退出备用模式的序列。 如果要更改为或不使用标准方式的代码在屏幕上留下一个甚至两个空格,那么应该提供 Xmc 以指示剩余的空格数。
如果终端通过使用没有特殊代码的下划线字符来生成带下划线的字符,那么应指定 乌勒 布尔功能。 您应该指定此功能,即使终端不会以其他方式覆盖字符也是如此。 对于一个字符覆盖另一个字符会在屏幕上留下两个字符的终端,请指定 奥斯 功能。 如果终端可以用空格擦除超值,那么通过指定 埃奥 功能来指示此情况。
使用 sgr 功能的示例
以下示例说明了如何使用 斯格尔 功能来开启各种方式。 假定您必须定义一个需要以下转义序列才能开启各种方式的终端:
| Terminfo 参数 | 方式 | 转义序列 |
|---|---|---|
| 无 | \E[0m | |
| p1 | 站出来 | \E[0;4;7m |
| p2 | 加下划线 | \E[0;3m |
| p3 | 撤销 | \E[0;4m |
| p4 | 闪烁 | \E[0;5m |
| p5 | 灰显 | \E[0;7m |
| p6 | 粗体 | \E[0;3:4m |
| p7 | 因维斯 | \E[0;8m |
| p8 | 保护 | 不可用 |
| p9 | 阿尔查特 | ^O(关闭)^N(关于) |
您可以通过组合其他方式来模拟某些方式。 在此示例中, 站出来 属性转义序列是 反转 序列和 昏暗 序列的组合。 此外,在此示例中, 大胆 序列是 反转 和 下划线 序列的组合。 要组合 下划线 和 眨眼之类的方式,要使用的顺序将为\E[0;3;5m.
您无法通过组合其他方式来模拟某些方式。 例如,您不能模拟 保护 方式。 在此示例中,系统将忽略 p8 参数。 阿尔查特 方式不同,因为它是 ^ O 或 ^ N,这取决于备用字符方式集是打开还是关闭。 如果所有方式都已开启,那么序列将显示为\E[0;3;4;5;7;8m^N.
某些序列是针对一种或多种方式输出的。 例如,以下是;3 is当 p2 参数或 p6 参数为 true 时输出。 如果您写出上述序列及其依赖关系,那么结果如下所示:
| 序列 | 何时输出 | terminfo 转换 |
|---|---|---|
| \E[0 | always | \E[0 |
| ;3 | 如果 p2 或 p6 | %?%p2%p6%|%t;3%; |
| ;4 | 如果 p1 , p3 或 p6 | %?%p1%p3%|%p6%|%t;4%; |
| ;5 | 如果 p4 | %?%p4%t;5%; |
| ;7 | 如果 p1 或 p5 | %?%p1%p5%|%t;7%; |
| ;8 | 如果 p7 | %?%p1%t;8%; |
| m | always | m |
| ^N or ^O | 如果 p9 ^ N , else ^ O | %?%p9%t^N%e^O%; |
最终结果将生成一个 斯格尔 序列,如下所示:
sgr=\E[0%?%p2%p6%|%t;3%;%?%p1%p3%|%p6%|%t;4%;%?%p4%t;5;%?%p1%p5%|
%t;7%;%?%p1%t;8%;m%?%p9%t^N%e^O%;,小键盘
如果终端具有在按下键时发送代码的小键盘,那么您可以在终端的 特温福 条目中定义此小键盘。 如果小键盘仅在本地方式下工作,那么无法处理终端。 如果小键盘可以设置为发送或不发送,请将这些代码指定为 斯姆克 和 雷姆克。 否则,假定该小键盘始终发送。
要定义由向左箭头,向右箭头,向上箭头,向下箭头和主键发送的代码,请分别使用 kcub1, kcuf1, kcud1和 克 home 功能。 如果存在诸如 F0, F1, ... 之类的功能键, F63,它们发送的代码可以作为 kf0, kf1, ... , kf63 功能。 如果前 11 个键具有除缺省值 F0 到 F10之外的标签,那么您可以使用 lf0, lf1... , lf10 功能。 由某些其他特殊键传输的代码可以定义为:
| 项 | 描述 |
|---|---|
| 克布斯 | 退格键。 |
| 克利尔 | 清除屏幕或擦除密钥。 |
| kctab | 清除此列中的制表符停止区。 |
| kdch1 | 删除字符键。 |
| kdl1 | 删除行键。 |
| 已标记 | 清除至屏幕末尾。 |
| 克尔 | 清除到行尾。 |
| 赫茨 | 在此列中设置制表符停止值。 |
| kich1 | 插入字符或进入插入方式。 |
| kil1 | 插入行。 |
| KIND | 向前和/或向下滚动。 |
| 克尔 | Home 向下键 (在此示例中, home 是显示屏的左下角)。 |
| 克尔米尔 | 退出插入方式。 |
| knp | 下一页。 |
| 克普 | 上一页。 |
| 克特布茨 | Clear-all-tabs 键。 |
| ri | 向后和/或向上滚动。 |
此外,如果小键盘具有三到三组键 (包括四个箭头键) ,请将其他五个键指定为 ka1, ka3, kb2 kc1和 kc3。 当您需要三乘三方向垫的效果时,这些键很有用。
程序功能键所提供的字符串可以作为 普费基, 普夫洛茨和 和平 功能。 用于对软屏幕标签进行编程的字符串可以指定为 普伦。 这些字符串中的每一个都采用两个参数: 编程的功能键号 (从 0 到 10) 以及用于对其进行编程的字符串。 超出此范围的功能键号可以以终端依赖的方式对未定义的键进行编程。 这些功能不同,因为 普费基 会导致按给定键与输入给定字符串的用户相同, 普夫洛茨 会导致终端以本地方式执行字符串,而 和平 会导致将字符串传输到计算机。 功能 恩拉布, 卢和 勒赫 定义了软标签的数量以及宽度和高度。 使用 斯姆恩 和 勒姆尔恩 来指定用于打开和关闭软标签的命令。 斯姆恩 通常在一个或多个 普伦 序列后输出,以确保更改可视。
选项卡和初始化
如果终端具有硬件选项卡,那么可以使用 赫特 功能 (通常为 Ctrl-I) 来指定命令以前进到下一个选项卡停止。 要指定向左移动到上一个制表符停止的命令,请使用 克卜特 功能。 按照约定,如果终端方式指示操作系统正在扩展选项卡而不是将其发送到终端,那么程序不应使用 赫特 或 克卜特 功能 (即使存在这些功能) ,因为用户可能未正确设置选项卡停止。
如果终端具有最初在终端加电时设置的每个 N 空间的硬件选项卡,那么其 特温福 描述应定义数字功能 它 ,以显示选项卡设置为的空间数。 通常, Tput 初始化 命令会使用 它 参数来确定是否设置硬件选项卡扩展的方式以及是否设置选项卡停止。 如果终端具有可保存在非易失性存储器中的制表符停止位,那么 特温福 描述可以假定已正确设置这些制表符停止位。
其他类似功能包括终端的 is1, is2和 is3 初始化字符串; 用于指定终端初始化程序的 伊普罗格 功能,以及用于标识包含长初始化字符串的文件的名称的 如果 功能。 预期这些字符串会将终端设置为与 特温福 文件描述的其余部分一致的方式。 每次用户登录时,通常会通过 Tput 初始化 命令将其发送到终端。 当用户登录时,系统将执行以下操作:
- 运行 伊普罗格 程序。
- 打印 is1。
- 打印 is2。
- 使用 管理, 斯姆格尔和 斯姆格尔 功能设置页边距。
- 使用 特布克 和 赫茨 功能设置选项卡。
- 打印 如果 文件。
- 打印 is3。
通过将公共序列放置在 is2 功能中,并将特殊情况放置在 is1 和 is3 功能中,可以设置特殊终端方式而不复制字符串。 要指定从完全未知状态进行更硬重置的序列,请指定与 is1, is2, is3和 如果 功能相同的 rs1, rs2, rs3和 罗夫 功能。
几个终端使用 如果 和 罗夫 文件。 但是,建议的方法是使用初始化字符串和重置字符串。 这些字符串是由 Tput 重置 命令输出的。 当终端开始有奇怪的行为或完全没有响应时,使用此命令。 通常,仅当命令在屏幕上产生令人讨厌的效果并且在登录时不需要时,才会将这些命令放置在 rs1, rs2, rs3 和 罗夫 功能中。 例如,用于将终端设置为 80 列方式的命令通常是 is2的一部分,但它会导致令人讨厌的屏幕行为,并且不是必需的,因为大多数终端是在 80 列方式下初始化的。
如果存在用于设置和清除制表符停止位的命令,请使用 特布克 (清除所有制表符停止位) 和 赫茨 (在每一行的当前列中设置制表符停止位) 功能来指定这些命令。 如果需要更复杂的序列来设置选项卡,请将该序列放置在 is2 或 如果 功能中。
管理 功能可以清除任何页边距。 有关如何设置和清除页边距的更多信息,请参阅 页边距。
其他字符串
如果终端需要一个非空字符的字符作为填充,那么指定 垫 字符串。 将仅使用 垫 字符串的第一个字符。 如果某个终端没有填充字符,请指定 全国人民代表大会 功能。
如果终端可以上下移动半线,请定义 胡 (半线上移) 和 赫德 (半线下移) 功能。 这些功能主要对硬拷贝终端上的上标和下标有用。 如果硬拷贝终端可以弹出到下一页 (换页) ,请指定为 夫 (通常为 Ctrl-L) 功能。
如果有命令要在给定次数内重复给定字符 (以节省传输大量相同字符的时间) ,那么可以使用 代表 参数化字符串来指示此情况。 第一个参数是要重复的字符,而第二个参数是要重复的次数。 因此:
tparm(repeat_char,'x',10) 与以下相同
xxxxxxxxxx 如果终端具有可设置的命令字符 (例如, Tektronix 4025) ,请使用 cmdch 功能来指示此情况。 选择了在所有功能中使用的原型命令字符。 此字符在 cmdch 功能中提供以进行标识。 在某些 UNIX 系统上,如果存在 CC 环境变量,那么所有出现的原型字符都将替换为 CC 变量中的字符。
不表示特定类型的已知终端 (例如,交换机,拨号,补丁和网络) 的终端描述应包含 格恩 (通用) 功能。 此功能允许程序在无法与终端通信的情况下返回错误。 格恩 功能不适用于已知道其转义序列的虚拟终端描述。 如果某个终端受 UNIX 系统虚拟终端协议支持,请使用 弗特 功能来定义其终端编号。
如果终端使用 xon/xoff 握手进行流量控制,那么其描述应该包含 克松 功能。 您还应该包含填充信息,以便例程可以更好地制定有关成本的决策。 但是,不会传输实际的填充字符。 要指定用于开启和关闭 xon/xoff 握手的序列,请使用 斯姆克森 和 Rmxon 功能。 如果用于握手的字符不是 ^ S 和 ^ Q ,那么使用 雄奇 和 克什夫茨 功能来定义这些字符。
如果终端具有充当移位键的元键,以设置传输的任何字符的第八位,那么使用 公里 功能来标识该键。 否则,软件假定第八位是奇偶校验,并且通常会被清除。 如果存在用于开启和关闭此元方式的字符串,那么这些字符串可以作为 斯姆 和 雷姆 功能提供。
如果终端在屏幕上同时具有超过适合的内存行,请使用 勒姆 功能来定义内存行数。 值为 lm#0 表示行数未固定,但仍有更多的内存行超出屏幕上的容量。
用于控制连接到终端的辅助打印机的介质复制字符串通过以下功能进行标识:
| 项 | 描述 |
|---|---|
| mc0 | 打印屏幕上的内容 |
| mc4 | 关闭打印机,并 |
| mc5 | 将打印机打开。 当打印机开启时,发送到终端的所有文本都将发送到打印机。 当打印机打开时,未定义该文本是否也显示在终端屏幕上。 |
| mc5p | 使打印机保持打开指定数目的字符,然后将打印机关闭。 传递到 mc5p 的参数不应超过 255。 |
如果在打印机打开时终端屏幕不显示文本,请指定 mc5i 功能以表示静默打印机。 在 mc5p 生效时,所有文本 (包括 mc4) 都以透明方式传递到打印机。
状态行
您可以使用 特温福 条目来指示终端有一个额外的状态行,该状态行通常不由软件使用。 如果状态行被视为底线下的额外一条线,而光标可以正常寻址到该线,那么应该提供 hs 功能。 用于转至状态行的开头并从状态行返回的特殊字符串可以分别作为 茨尔 和 国际 功能提供。 ( 国际 必须将光标位置保留在与 茨尔之前相同的位置。 如果需要,可以将 斯克 字符串和 返回码 字符串包含在 茨尔 和 国际 中以获得此效果。) 茨尔 功能采用一个参数,该参数是要将光标移动到的状态行的列号。
如果转义序列和其他特殊命令 (例如选项卡) 在状态行中起作用,请指定 埃斯洛克 功能。 关闭状态行 (或以其他方式擦除其内容) 的字符串应以 德尔形式提供。 如果终端具有用于保存和恢复光标位置的命令,请将它们作为 斯克 和 返回码 功能提供。 通常假定状态行的宽度与屏幕的其余部分 (例如 科尔斯) 相同。 如果状态行是不同的宽度 (可能是因为终端不允许装入整条线) ,那么可以使用 世界 数字参数来指示列中的宽度。
折线图
如果终端具有线条画备用字符集,请在 阿克斯 功能中指定从图像字符到字符的映射。 此字符串的定义基于 DEC VT100 终端中使用的备用字符集,并使用 AT&T4410v1 终端中的某些字符稍微扩展了此字符串。 使用以下内容来定义字符串:
| 图像字符名称 | vt100+ 字符 |
|---|---|
| 向右箭头 | + |
| 向左箭头 | , |
| 向下箭头 | . |
| 实心正方形 | 0 |
| 灯形符号 | I |
| 向上箭头 | - |
| 菱形 | ' |
| 检查板 (stipple) | a |
| 等级符 | f |
| 加号或减号 | g |
| 正方形 | h |
| 右下角 | j |
| 右上角 | k |
| 左上角 | l |
| 左下角 | m |
| 加号 | n |
| 扫描线 1 | o |
| 水平线 | q |
| 扫描线 9 | s |
| 左侧 T 型 | t |
| 右侧 T 型 | u |
| 底部 T 型 | v |
| 顶部 T 型 | w |
| 垂直线 | x |
| 项目符号 | ~ |
描述新终端的线图形集的最佳方法是在上表中添加第三列,其中包含新终端的字符,当终端处于备用字符集模式时,这些字符将生成适当的图像字符。 例如:
glyph name vt100 tty
character character upper left corner l R lower left corner m F upper right corner k T lower right corner j G horizontal line q , vertical line x . 然后,通过指定从左到右的字符来指定 阿克斯 功能,如下所示:
acsc=lRmFkTjGq\,x.颜色操作
有两种颜色操控方法,分别是 HP 方法和 Tektronix 方法。 大多数现有的颜色终端都属于这两个类中的一个。 Tektronix 方法使用一组 N 预定义的颜色 (通常为 8) ,用户可以从中选择 当前 前景色和背景色。 因此,终端最多可以支持 N 多种颜色混合到同时显示在屏幕上的 N*N 颜色对中。
HP 方法限制用户独立于后台定义前台,或独立于前台定义后台。 相反,用户必须一次性定义一个完整的颜色对。 最多可以通过此方式定义由 2 *M 不同颜色组成的 M 颜色对。
数字变量 颜色 和 对 定义终端可以同时显示在屏幕上的颜色和颜色对的数量。 如果终端可以更改颜色的定义,那么您应该指定 抄送 功能。 要使用 Tektronix 方法来更改颜色的定义,请使用 国际 功能。 此功能需要四个参数: 从 0 到 colors-1 的颜色数字以及从 0 到 1000 0 三个红色,绿色,蓝色 (RGB) 值。
要将当前前景和背景设置为给定颜色,请使用 集 和 塞特卜 功能。 这些功能需要单个参数来指定颜色的数目。 要使用 HP 方法来初始化彩色对,请使用 初始化 功能。 此功能需要七个参数:
- 颜色对的编号范围为0到pairs -1
- 前景的三个 RGB 值
- 背景的三个 RGB 值
使用 国际 或 初始化 功能时,请确保分别指定顺序为红色,绿色,蓝色或色调,亮度,饱和度的值。 要使颜色对成为当前状态,请使用 斯普 功能。 此功能采用一个参数,即,颜色对的数量。
一些终端用当前背景色擦除屏幕的区域。 在此类情况下,请定义 布采 功能。 操作 功能包含用于将前景色和背景色设置为在终端启动时它们所处的位置的顺序。 同样, 奥克 功能包含一个控制序列,用于将所有颜色或-对设置为它们在终端启动时具有的值。
某些颜色终端以颜色代替视频属性。 此类视频属性不应与颜色组合在一起。 您应该将有关这些视频属性的信息打包到 恩茨夫 功能中。 该变量的 9 个最低有效位与视频属性之间存在一对一的对应关系。 下表描述了此对应关系:
| 属性 | NCV 位号 |
|---|---|
| A_STANDOUT | 0 |
| A_UNDERLINE | 1 |
| A_REVERSE | 2 |
| A_BLINK | 3 |
| A_DIM | 4 |
| A_BOLD | 5 |
| 库存 (_INVIS) | 6 |
| AA_PROTET | 7 |
| A_ALTCHARSET | 8 |
当特定视频属性不应该与颜色一起使用时,相应的 恩茨夫 位 1 设置为 1。 否则,将位设置为 0。 例如,如果终端使用颜色来模拟反向视频和粗体,那么应该将第 2 5 和第 5 1 设置为 1。 恩茨夫 的结果值将为 22。
特殊情况
某些终端需要 特温福 数据库的特殊支持。 这些终端并不不足。 这些终端的硬件可能与 特温福 数据库对大多数终端期望的硬件略有不同。 其中一些特殊情况将在本节中讨论。 终端的程序员手册应该提供对终端的 特温福 描述进行编码所需的所有信息。
对于不允许使用 ~ (波浪号) 字符的终端,请使用 赫兹 功能。
在 上午 换行后立即忽略换行字符的终端的描述应该包含 塞尼勒 功能。 其光标保留在最右侧的列上,直到接收到另一个字符,而不是在接收到最右侧的字符后立即回绕的那些终端也应该使用 塞尼勒 功能。
如果需要 埃尔 功能来除去标准输出 (而不是仅在其之上编写正常文本) ,那么您应该指定 希普 功能。
制表符将所有已移动字符更改为空格的终端应指示 Xt 功能 (破坏性制表符)。 此功能被解释为意味着不可能将光标放置在插入的垫上,以进行站立模式。 相反,需要使用删除和插入行来擦除标准输出方式。
无法正确传输 ESC (转义) 或 Ctrl-C 字符的终端应指定 Xsb 功能,这指示 F1 键用于 ESC , F2 键用于 Ctrl-C。
其他特定终端问题可以通过添加更多功能来更正。
类似终端
term-nl | Terminal smkx@, rmkx@, use=term定义一个终端,该终端不具有 斯姆克 或 雷姆克 功能,因此在可视方式下不会开启功能键标签。 这对于不同终端方式或不同用户首选项很有用。 您可指定多个 使用 功能。
打印机功能
特温福 数据库使您能够定义打印机以及终端的功能。 要了解哪些功能可用于打印机和终端,请参阅 "终端功能" 下的两个列表,其中按变量和功能名称列出了这些功能。
舍入值
由于参数化字符串功能仅适用于整数值,因此我们建议 特温福 设计人员创建期望舍入数字值的字符串。 程序员在将值与参数化字符串功能配合使用之前,应该始终将值舍入为最接近的整数。
打印机分辨率
打印机的分辨率是它能够实现的最小字符间距。 通常,打印机具有水平和垂直的独立分辨率。 要确定打印机的垂直分辨率,请测量连续打印基线之间的最小可实现距离。 要确定水平分辨率,请测量连续打印的相同字符的最左边缘之间的最小可实现距离。
特温福 数据库假定所有打印机都能够以统一的水平和垂直分辨率进行打印。 特温福 数据库当前与打印机交互,就像它们在统一矩阵内打印一样。 所有字符都打印在相对于矩阵中每个单元格的固定位置。 此外,每个单元格都具有由分辨率决定的最小水平和垂直步长给定的相同大小。
许多打印机都能够进行比例打印,其中水平间距取决于打印的最后一个字符的大小。 虽然 特温福 数据库提供了足够的功能定义以允许应用程序模拟比例打印,但它未使用此功能。
打印机不仅必须能够像水平和垂直分辨率建议的那样紧密地一起打印字符,而且还必须移动到与先前位置相距最小的整数倍的位置。 因此,打印的字符可以间隔一个距离,该距离是最小距离的整数倍,直到单个页面的宽度长度。
根据不同的方式,某些打印机可以具有不同的分辨率。 在正常方式下,假定现有 特温福 功能在列和行上工作,就像视频终端一样。 例如,旧的 行 功能指定页面的长度 (以行为单位) ,而 科尔斯 功能指定页面的宽度 (以列为单位)。 在 微 方式下,许多 特温福 功能以行和列的增量工作。 对于某些打印机, 微 方式可能与 正常 方式同时存在,因此所有功能都可以同时工作。
指定打印机分辨率
您可以使用几种不同的功能来指定打印机的打印分辨率。 每个功能以不同的方式指定距离。 以下功能定义打印分辨率:
| 功能 | 定义为 |
|---|---|
| orhi | 每英寸水平步骤数 |
| orvi | 垂直每英寸步骤数 |
| orc | 每个列的步骤数 |
| orl | 每行的步骤数 |
当以正常方式打印时,打印的每个字符都会使打印机移动到下一列,但后面描述的特殊情况除外。 移动的距离与按列解析的距离相同。 当在最右边位置打印一个字符时,某些打印机会导致自动移动到下一行。 移动的垂直距离与按行的分辨率相同。 在微模式下打印时,这些距离可以不同,对于某些打印机可能为零。 以下内容指定打印后的打印机分辨率自动运动:
| 功能 | 定义为 |
|---|---|
| orc | 在正常方式下水平移动的步骤。 |
| orl | 在正常方式下垂直移动的步骤。 |
| 姆奇 | 在微模式下水平移动的步骤。 |
| 姆尔斯 | 在微模式下垂直移动的步骤。 |
某些打印机可以打印宽字符。 在正常模式下打印宽字符时移动的距离可能与打印常规宽度字符时移动的距离不同。 在微模式下打印宽字符时移动的距离也可能与在微模式下打印常规字符时移动的距离不同,但假定这些差异是相关的。
如果为常规字符移动的距离在正常方式或微方式下相同 (姆奇=实例) ,那么为宽字符移动的距离在两种方式下也是相同的。 这并不意味着正常字符距离必定与宽字符距离相同,只是距离不会随着从正常模式到微模式的变化而变化。 当打印宽字符后的自动移动在正常方式或微方式下都相同时,使用 维德奇 功能来指定打印机分辨率。
如果在微模式下移动的常规字符的距离与在正常模式下移动的距离不同 (mcs<奥克) ,那么您可以假定在微模式下打印的宽字符的微模式距离相同。 在此情况下,您可以使用 姆奇 功能来指定移动的距离。 打印机使用您为常规字符和宽字符指定的值
打印机可以使用控制序列来改变每英寸的列数 (字符间距) 和改变每英寸的行数 (行间距)。 如果使用了这些参数,那么打印机的分辨率将更改,但更改类型取决于打印机。
| 功能 | 定义为 |
|---|---|
| cpi | 更改字符间距。 |
| Cpix | 如果设置,那么 中国国际 更改 奥尔希,否则 中国国际 功能会更改 奥克 值。 |
| lpi | 更改行间距 |
| 利皮克斯 | 如果设置, 里皮 将更改 奥尔维 值,否则将更改 奥尔 值。 |
| chr | 更改每列的步骤。 |
| cvr | 更改每行的步骤。 |
中国国际 和 里皮 字符串功能具有单个参数,分别为每英寸列 (或字符) 和行中的间距。 奇尔 功能和 欧洲委员会 字符串功能各有一个参数,分别为每一列和每一行的步骤数。
在这些字符串中使用任何控制序列都意味着 奥克, 奥尔希, 奥尔和 奥尔维 功能的某些值会发生更改。 此外,在打印宽字符时移动的距离 (由 维德奇 功能指定) 会相对于 奥克 值发生更改。 以微方式 姆奇打印字符时移动的距离也会发生类似的变化,但有一个例外: 如果距离为 0 或 1 ,那么假定没有变化。
使用 cpi , lpi , chr 或 cvr 功能的程序应重新计算打印机分辨率,并应重新计算其他值。 有关更多信息,请参阅 更改打印分辨率的影响 。

五cpi , 五lpi , 五chr 和 五cvr 分别是与 中国国际, 里皮, 奇尔和 欧洲委员会 一起使用的参数。 dagger 符号表示旧的值。
导致移动的功能
在以下描述中, 运动 指的是 当前位置的运动。 对于视频终端,这将是光标; 对于某些打印机,这将是回车位置。 其他打印机具有不同的等效项。 通常,当前位置是显示字符 (如果打印) 的位置。
特温福 数据库具有用于控制序列的字符串功能,这些控制序列会导致移动许多完整的列或行。 它还具有等效的字符串功能,用于导致移动许多小步骤的控制序列。 以下是用于移动的字符串功能:
| 功能 | 描述 |
|---|---|
| mcub1 | 向左移动 1 步。 |
| mcuf1 | 向右移动 1 步。 |
| mcuu1 | 上移 1 步。 |
| mcud1 | 下移 1 步。 |
| 姆库布 | 向左移动 N 个步骤。 |
| 姆库夫 | 将 N 步骤向右移动。 |
| 姆库乌 | 将 N 上移。 |
| 姆库德 | 下移 N 个步骤。 |
| 姆帕 | 从左侧移动 N 个步骤。 |
| 姆夫帕 | 从顶部移动 N 个步骤。 |
最后六个字符串每个都与单个 N 自变量配合使用。
有时,该运动限制为小于页面的宽度或长度。 另外,某些打印机不接受当前位置左侧的绝对移动。 以下功能限制运动:
| 功能 | 描述 |
|---|---|
| 跳马 | 限制了 mcub1, mcuf1, mcuu1和 mcud1 功能的使用。 |
| 马德尔 | 限制了 姆帕 和 姆夫帕 功能的使用。 |
| 希帕 | 如果设置,那么将取消 帕 和 姆帕 功能。 |
| 克夫帕 | 如果设置,那么将取消 弗帕 和 姆夫帕 功能。 |
如果打印机需要在 微方式 中才能运行移动功能,那么您可以定义字符串功能以包含进入和退出微方式的控制序列。 对于那些使用回车符导致自动返回到正常方式的打印机,提供了一个布尔值。 以下功能与微型方式行为相关:
| 功能 | 描述 |
|---|---|
| 斯米克姆 | 进入微模式。 |
| 雷米克姆 | 退出微模式。 |
| 克拉克斯姆 | 使用 河 功能指定的密钥将退出微方式。 |
在最右边位置打印字符时所做的移动在打印机之间变化。 有的不做任何动作,有的移动到下一行的开头,有的移动到同一行的开头。 特温福 数据库具有用于描述所有三个情况的布尔功能。 萨姆 功能指定在以最右边的页边距打印字符之后,打印机自动移动到同一行的开头。
可以将某些打印机置于正常运动方向相反的模式中。 当不存在用于向左或向上运动的功能时,此模式特别有用,您可以从运动反转功能和向右或向下运动功能来构建这些功能。 最好将其留给应用程序来构建向左或向上的功能,而不要将它们输入到 特温福 数据库中。 这允许将多个反向运动串在一起,而不干预离开并重新进入反向模式的浪费步骤。 以下功能控制进入和退出反向方式:
| 功能 | 描述 |
|---|---|
| 斯莱姆 | 水平运动的反向感。 |
| 勒姆 | 恢复水平运动的感觉。 |
| SUM | 垂直运动的反向感。 |
| 朗姆 | 恢复垂直运动的感觉。 |
当水平移动反转时,以下功能会影响屏幕:
| 功能 | 描述 |
|---|---|
| mcub1 | 向右移动 1 步。 |
| mcuf1 | 向左移动 1 步。 |
| 姆库布 | 将 N 步骤向右移动。 |
| 姆库夫 | 向左移动 N 个步骤。 |
| cub1 | 向右移动 1 列。 |
| cuf1 | 向左移动 1 列。 |
| cub | 将 N 列向右移动。 |
| cuf | 将 N 列向左移动。 |
以下功能会影响屏幕,而垂直移动是反向的:
| 功能 | 描述 |
|---|---|
| mcuu1 | 下移 1 步。 |
| mcud1 | 上移 1 步。 |
| 姆库乌 | 下移 N 个步骤。 |
| 姆库德 | 将 N 上移。 |
| cuu1 | 下移 1 行。 |
| cud1 | 将 1 行上移 |
| cuu | 将 N 行下移。 |
| CUD | 将 N 行上移。 |
反向移动方式不应该影响 姆夫帕 和 姆帕 绝对移动功能。 但是,反向垂直移动方式也应该使在最右侧位置打印一个字符时所发生的行 包装 的动作反向。 因此,当在最右侧位置打印一个字符,并且打印机处于反向垂直运动方式时,定义了标准 特温福 功能 上午 的打印机应该移动到前一行的开头。
未定义在反向运动方式中使用任何其他运动功能时的动作。 因此,在使用其他运动功能之前,程序必须退出反向运动模式。
两个其他功能完成了新增运动功能的列表,即 多克尔 和 泽罗姆 功能。 多克尔 功能提供了导致回车符的控制字符的列表。 当使用某些控制字符 (例如换行或换页) 时,此功能对于将当前位置移动到行开头的打印机而言很有用。 泽罗姆 功能阻止在打印单个字符后自动移动。 此功能将暂挂通常在打印字符后发生的移动。
页边距
特温福 数据库提供了两个用于在终端上设置页边距的字符串: 一个用于左页边距,另一个用于右页边距。 但是,每个页面的上页边距和下页边距都有两个额外的页边距。 此外,某些打印机不像现有功能那样要求使用移动字符串将当前位置移动到页边距并固定页边距,但要求指定页边距的位置,而不考虑当前位置。 因此, 特温福 数据库提供了六个额外的字符串,用于定义打印机的页边距。 以下功能会影响页边距:
| 功能 | 定义 |
|---|---|
| 斯姆格尔 | 设置当前列的左页边距。 |
| 斯姆格尔 | 在当前列中设置右页边距。 |
| smgb | 在当前行设置软底边距。 |
| smgt | 设置当前行的软顶边距。 |
| smgbp | 在第 N行设置软底边距。 |
| smglp | 在第 N列设置软左页边距。 |
| smgrp | 在第 N列设置软右页边距。 |
| smgtp | 在第 N行设置软上页边距。 |
可以使用 管理 功能来清除所有页边距。
Shadows , Italics , Wide Characters , Superscripts 和 Subscripts
使用五个新字符串集来描述打印机增强打印文本的功能。 以下定义了增强的打印功能:
| 功能 | 定义 |
|---|---|
| 什姆 | 进入影子打印方式。 |
| 雷什姆 | 退出影子打印方式。 |
| 锡特姆 | 输入斜体字化方式。 |
| 里特姆 | 退出斜体方式。 |
| swidm | 输入宽字符方式。 |
| rwidm | 退出宽字符方式。 |
| 苏普姆 | 输入上标方式。 |
| 苏普姆 | 退出上标方式。 |
| 苏普奇 | 作为上标提供的字符列表。 |
| 苏姆 | 进入下标方式。 |
| 里苏姆 | 退出下标方式。 |
| 苏巴克 | 可用作下标的字符列表。 |
如果打印机在每个字符前都需要 什姆 控制序列以进行影子打印,那么 雷什姆 字符串将保留为空白。 因此,在 什姆 中找到控制序列但在影子打印方式下未找到控制序列的程序应该在每个要影子打印的字符之前使用 什姆 功能指定的控制序列。 否则,控制序列应在要进行影子打印的字符集之前使用一次,然后退出影子打印方式。
特温福 数据库还具有用于打印增强文本的功能,即 大胆 功能。 虽然影子打印和大胆打印是相似的,因为它们会使文本变黑,但许多打印机以略有不同的方式生产这两种类型的打印。 通常,通过一次或多次覆盖同一字符来进行大胆的打印。 阴影印刷也通常涉及到叠印,但稍微向上和/或向侧面移动,以便使人物更加胖。
假定增强的打印方式是独立的方式,以便例如,可以使用阴影打印斜体字下标。
如前所述,在打印宽字符后自动产生的运动量应在 维德奇 功能中给出。
如果只有可打印 ASCII 字符的子集可以打印为上标或下标,那么应该分别在 苏普奇 或 苏巴克 功能中列出这些字符。 如果 苏普姆 或 苏姆 字符串包含控制序列,但相应的 苏普奇 或 苏巴克 字符串为空,那么假定所有可打印的 ASCII 字符都可用作上标或下标。
在打印上标或下标之后进行的自动运动被假定为与常规字符相同。 例如,打印以下任何结果将产生等效的运动:
Bi Bi Bi 布尔功能 消息 描述应用程序在处于标准输出方式时是否可以使用运动控制序列。 此功能已扩展为涵盖此处添加的增强打印方式。 应该为那些接受任何运动控制序列而不影响阴影,斜体化,加宽,上标或下标打印的打印机设置 姆格尔 功能。 相反,如果未设置 姆格尔 功能,那么程序应在尝试任何移动之前结束这些方式。
备用字符集
除了允许您定义行图之外, 特温福 数据库还允许您定义备用字符集。 以下功能涵盖具有多个可选或可定义字符集的打印机和终端:
| 功能 | 定义 |
|---|---|
| scs | 选择字符集 N。 N 参数指定 0 到 63 之间的一个数字,用于标识字符集。 |
| scsd | 字符集 N的开始定义, M 个字符。 N 参数指定 0 标识字符集的 0 到 63 之间的数字,而 M 参数指定该字符集中的字符数。 |
| 德夫克 | 将字符定义为 A 以 B 点宽带下降符 D。 A 参数是该字符的 ASCII 代码表示法。 B 参数指定字符的宽度 (以点为单位)。 D 参数指定该字符是否为下降符。 如果该字符是派生字符,请为 D 参数指定 1。 否则,请指定 1。 此字符串后面跟有一个描述字符外观的图像数据字节字符串。 |
| 雷奇德 | 字符集 N. 的结束定义 N 参数指定 0 到 63 之间的一个数字,用于标识字符集。 |
| csnm | 字符集名称的列表。 |
| daisy | 指示打印机已手动更改了打印轮。 |
字符集 0 是缺省字符集。 这是在初始化打印机后存在的集合。 并非每个打印机都支持 64 个字符集。 如果您指定打印机不支持的集合,那么 特帕尔姆 子例程将返回空结果。
如果您的应用程序在使用之前必须定义一个字符,请在定义字符集之前使用 斯奇德 控制序列,然后使用 雷奇德 。 如果您对其中任一功能指定了无效字符集,那么 特帕尔姆 子例程将返回空解析。 如果您的应用程序必须在定义字符集后选择该字符集,那么 科学和 控制序列应遵循 雷奇德 控制序列。 通过检查在调用 特帕尔姆 子例程时使用带有字符集编号的 科学和, 斯奇德和 雷奇德 字符串中的每个字符串的结果,程序可以确定需要这三个字符串中的哪一个。
在使用 斯奇德 字符串和 雷奇德 字符串之间,应该使用 德夫克 字符串来定义每个字符。 要在 特温福 数据库中定义的打印机上打印任何字符,会将 ASCII 代码发送到打印机。 对于备用集合中的字符以及 正常 个字符都是如此。 因此,字符的定义包含表示该字符的 ASCII 代码。 此外,该字符的宽度包括表示它的 ASCII 代码。 此外,还给出了字符的宽度 (以点为单位) ,以及表示该字符是否为后代的 tan 指示。 后代是一个形状延伸到基线之下的字符,例如,字符 g 是一个后代。 该字符的宽度为点,也表示将跟随 德夫克 字符串的图像数据字节数。 这些图像数据字节指示在点阵模式中应将墨水应用于 抽签 字符的位置。 在 Dot-Mapped Graphics 下定义了这些字节的数目及其格式。
对于 特温福 条目的创建者来说,最容易按数字引用每个字符集。 但是,这些数字对于应用程序开发者来说将是毫无意义的。 奇纳米 功能通过提供每个数字的名称来缓解此问题。
当在调用 特帕尔姆 子例程时与字符集编号一起使用时, 奇纳米 功能将生成等效的名称。 请仅将这些名称用作引用。 不隐含任何命名约定,尽管为打印机创建 特温福 条目的任何人都应该使用与打印机的用户文档中找到的名称一致的名称。 应用程序开发者应允许用户按数字指定字符集 (由用户检查 奇纳米 字符串以确定正确的数字) ,或按名称指定字符集,其中应用程序会检查 奇纳米 功能以确定相应的字符集编号。
备用字符集功能很可能仅与点阵打印机一起使用。 如果它们不可用,请不要定义这些字符串。 对于已手动更改打印轮或字体盒带的打印机,请设置布尔 雏菊 功能。
点矩阵图形
点阵式打印机通常具有再现光栅图形图像的能力。 三种新的数字功能和三种新的字符串功能可以帮助一个程序绘制光栅图形图像,而不依赖于点阵打印机的类型或打印机一次可以处理的引脚或点的数量。 Dot-matrix 功能如下:
| 功能 | 定义 |
|---|---|
| 恩平 | 打印头中的引脚 N 的数目。 N 参数指定引脚的数量。 |
| 斯皮夫 | 以每英寸引脚数为单位的垂直引脚间距。 |
| 斯平赫 | 点水平间距 (以每英寸点为单位)。 |
| 波尔德 | 将软件位与打印头引脚匹配。 |
| 斯比姆 | 开始打印位图像图形, B 位宽。 B 值指定图像的宽度 (以点为单位)。 |
| 里比姆 | 结束打印位图像图形。 |
特温福 数据库所提供的点阵或光栅图形模型与大多数点阵打印机所使用的技术类似。 假定打印机的打印头的每次通过都生成一个点矩阵,其高度为 N 点,宽度为 B 点。 这通常是一个宽的,蹲的,矩形的点。 此矩形的高度 (以点为单位) 因打印机而异。 这在 恩平 数字功能中提供。 矩形的大小 (以一英寸的分数为单位) 也会有所不同。 可以从 斯皮夫 和 斯平赫 数字功能推断出该大小。 通过这三个值,应用程序可以将完整的光栅图形图像划分为几个水平条,也许可以进行插值以考虑垂直和水平的不同点间距。
斯比姆 和 里比姆 功能分别用于启动和结束点矩阵图像。 斯比姆 功能与单个自变量配合使用,该自变量以点为单位提供点矩阵的宽度。 在 斯比姆 功能之后且在 里比姆 字符串之前,会将一系列图像数据字节发送到打印机。 字节的数量是点阵宽度的整数倍。 每个字节的倍数和格式由 波尔德 功能确定,如下所述。
波尔德 功能是一个以逗号分隔的引脚号列表。 每个引脚号在列表中的位置对应于数据字节中的一个位。 锁 1 从 1 到 恩平连续编号,其中 1 是顶部锁钉。 此处松散地使用了术语 pin。 喷墨点阵打印机没有引脚,但它们具有将单个点的墨水应用到纸张上的等效方法。 波尔德 中的位位置为 8 个组,每个组中的第一个位置是最重要的位,最后一个位置是最不重要的位。
图像数据字节是根据点阵图像计算的,将每个打印头中的垂直点位置映射为 8 位字节 1 使用 1 位应该应用 0 , 0 位不应该应用墨水。 如果在 波尔德中跳过某个位置,那么将使用 0 位。 在 波尔德中, 8 使用或跳过 8 位位置的倍数。 否则,将使用 0 位来填充最低有效位中的最后一个字节。
更改打印分辨率的影响
如果使用了用于更改字符间距或行间距的控制序列,那么引脚或点间距可能会更改。 以下功能改变了点阵图形上的间距:
| 功能 | 定义 |
|---|---|
| cpi | 更改字符间距。 |
| Cpix | 如果设置,那么 中国国际 更改 斯平赫。 |
| lpi | 更改行间距。 |
| 利皮克斯 | 如果设置,那么 里皮 更改 斯皮夫。 |

奥希 和 奥尔希 值分别是使用 中国国际 之前和使用 中国国际之后的水平分辨率值 (以每英寸的步骤数为单位)。 同样, 奥尔维 和 奥尔维 分别是在使用 里皮 之前和使用 里皮之后的垂直分辨率值 (以每英寸的步骤数为单位)。 因此,点阵图形每英寸点的变化是跟随打印机分辨率每英寸步数的变化而变化的。
打印质量
许多点阵式打印机可以改变打印文本的点阵间距,以产生接近字母质量的打印或草稿质量的打印。 通常,能够选择一个或另一个是很重要的,因为随着质量的提高,打印的速率一般会下降。 用于指定打印质量的功能如下所示:
| 功能 | 定义 |
|---|---|
| 斯纳勒格 | 设置近字母质量打印。 |
| 斯纳姆格 | 设置正常质量打印。 |
| 斯德尔夫克 | 设置草稿质量打印。 |
这些功能在质量级别下降时列出。 如果打印机没有全部三个级别,那么应将其中一个或两个字符串保留为适当的空白。
打印速率和缓冲区大小
由于没有将打印机与程序同步的标准协议,并且由于现代打印机可以在打印数据之前对数据进行缓冲,因此程序通常在任何时候都无法确定已打印的内容。 两个新的数字功能可以帮助程序估算已打印的内容,即 欧洲 和 布兹 功能。
欧洲 功能指定名义打印速率 (以每秒字符数为单位)。 欧洲 功能是打印机打印字符的额定速率或平均速率。 如果未给定此值,那么估计该速率为当前波特率的十分之一。
布兹 功能以字符为单位定义终端的缓冲区容量。 布兹 值是在保证打印较早的字符之前缓冲的后续字符的最大数目,假定使用了正确的流量控制。 如果未给定此值,那么假定打印机不缓冲字符,而是在接收到这些字符时打印这些字符。
例如,如果打印机具有 1000 个字符的缓冲区,那么发送字母 "a" ,后跟 1000 个附加字符将保证打印该字母 "a"。 如果同一台打印机以每秒 100 个字符的速率打印,那么打印缓冲区中的所有字符应该需要 10 秒,如果缓冲区不已满,那么更少打印时间。 通过跟踪发送到打印机的字符,并知道打印速率和缓冲区大小,程序可以将自己与打印机同步。
大多数打印机制造商宣传的是最大打印速率,而不是名义打印速率。 获取 欧洲 的值的一个好方法是生成几页文本,对可打印的字符数进行计数,然后查看打印文本所花费的时间。
使用这些值的应用程序应该识别打印速率的可变性。 在短行中,没有嵌入控制序列的直文本可能会在接近所公布的打印速率时打印,并且可能比 欧洲中的速率更快。 具有大量控制序列或非常长的文本行的图形数据将在 欧洲中以远低于广告速率和低于速率的速度进行打印。 如果应用程序正在使用 欧洲 来决定打印机应该花费多长时间来打印文本块,那么应用程序应该填充估算值。 如果应用程序正在使用 欧洲 来确定已经打印了多少文本,那么它应该缩小估算值。 有利于用户的应用程序 errs ,最重要的是,用户希望在正确的位置看到所有输出。
数据库文件名
编译的 terminfo 文件描述放在 /usr/share/lib/terminfo 目录下的子目录中,以避免通过包含所有 terminfo 文件描述文件的单个目录执行线性搜索。 给定的描述文件存储在 /usr/share/lib/terminfo/c/name 文件中,其中 name 是终端的名称, c 是终端名称的第一个字母。 例如,该终端的已编译描述term4-nl可以在文件 /usr/share/lib/terminfo/t/term4-nl中找到。 您可以通过建立到同一已编译文件的多个链接来为同一终端创建同义词。 (请参阅 Ln 命令以了解如何创建指向文件的多个链接。)
示例
以下 特温福 条目描述了终端:
hft|High Function Terminal,
cr=^M, cud1=\E[B, ind=\E[S, bel=^G, il1=\E[L, am,
cub1=^H, ed=\E[J, el=\E[K, clear=\E[H\E[J,
cup=\E[%ip1%d;%p2%dH, cols#80, lines=#25,
dch1=\E[P, dl1=\E[M, home=\E[H,
ich=\E[%p1%d@, ich1=\E[@, smir=\E[6, rmir=\E6,
bold=\E[1m, rev=\E[7m, blink=\E[5m, invis=\E[8m, sgr0=\E[0m,
sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6t1;%;m,
kcuu1=\E[A, kcud1=\E[B, kcub1=\E[D,
kcuf1=\E[C, khome=\E[H, kbs=^H,
cuf1=\E[C, ht=^I, cuu1=\E[A, xon,
rmul1=\E[m, smul=\E[4m, rmso=\E[m, smso=\E[7m,
kpp=\E[150q, knp=\E[154q,
kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
kf9=\E[009q, kf10=\E[010q,
bw, eo, it#8, ms,
ch=\E%i%p1%dG, ech=\E[%p15dx,
kdch1=\E[P, kind=\E[151q, kich1=\E[139q, kimr=\E[41,
kn=^M, ko=^I, ktab=\E[Z, kri=\E[155q,
cub=\E[%p1%dD, cuf=\E[%p1%dC, indn=\E[%p1dS, rin=\E[%p1%dT,
ri=\E[T, cuu=\E[%p1%dA,
box1=332\304\277\263\331\300\302\264\301\303\305,
box2=311\315\273\272\274\310\313\271\312\314\316,
batt2=md,
colf0=\E[30m, colf1=\E[31m, colf2=\E[32m, colf3=\E[33m,
colf4=\E[34m, colf5=\E[35m, colf6=\E[36m, colf7=\E[37m,
colb0=\E[40m, colb1=\E[41m, colb2=\E[42m, colb3=\E[43m,
colb4=\E[44m, colb5=\E[45m, colb6=\E[46m, colb7=\E[47m, ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
am, mir, cr=^M, ind=^J,
cols#80, it#8, lines#24,
kich1=\EP\040\010,
ed=\EJ, el=\EI, cup=\EY%p1%' '%+%c%p2%'
'%+%c,
clear=\EH\EJ, dch1=\EQ, dl1=\EO, cud1=\EB,
cub1=\ED, blink=\E4D, bold=\E4H,
sgr0=\E4@\E<@,
invis=\E4P, rev=\E4A, cuf1=\EC,
rmso=\E4@,
smso=\E4A, rmul=\E4@, cuu1=\EA,
smul=\E4B,
sgr=\E4%'@'%?%p1%t%'A'%|%;
%?%p2%t%'B'%|%;
%?%p3%t%'A'%|%;
%?%p4%t%'D'%|%;
%?%p5%t%'@'%|%;
%?%p6%t%'H'%|%;
%?%p7%t%'P'%|%;%c
%?%p9%t\E>A%e\E<@%;,
box1=\354\361\353\370\352\355\367\365\366\364\356,
box2=\354\361\353\370\352\355\367\365\366\364\356,
batt2=md,
ktbc=\E\0401, kil1=\EN, kbs=^H,
kclr=\EL^M,
kcud1=\EB, kdch1=\EQ, kel=\EI,
khome=\EH,
kcub1=\ED, kdl1=\EO, ktab=^I, kcbt=\E2,
kcuf1=\EC, ked=\EJ, kctab=\E1, khts=\E0,
kcuu1=\EA, knl=\r, kact=\E8\r,
kf1=\Ea\r, kf2=\Eb\r, kf3=\Ec\r,
kf4=\Ed\r,
kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r,
kf8=\Eh\r,
kf9=\Ei\r, kf10=\Ej\r, kf11=\Ek\r,
kf12=\El\r,
kf13=\E!a\r, kf14=\E!b\r, kf15=\E!c\r,
kf16=\E!d\r,
kf17=\E!e\r, kf18=\E!f\r, kf19=\E!g\r,
kf20=\E!h\r,
kf21=\E!i\r, kf22=\E!j\r, kf23=\E!k\r,
kf24=\E!l\r,
smcup=\E>A, rmcup=\E>A, msgr,
home=\EH, bel=^G, mc5=^P^R, mc4=^P^T,
文件
| 项 | 描述 |
|---|---|
| /usr/share/lib/terminfo/?/* | 已编译终端功能数据库。 |