map3270 TCP/IP 的文件格式

用途

定义 tn3270 命令的键盘映射和颜色。

描述

文件 /etc/map3270 定义了键盘映射和 tn3270 命令的颜色。 当仿真 3270 终端时,必须在用户 (ASCII) 键盘上输入的键序列与 3270 仿真器上提供的键之间执行映射。

例如, 3270 仿真器键 EEEOF 会将当前字段的内容从光标的位置擦除到字段的末尾。 为了完成此功能,模拟 3270 仿真器的终端用户和程序必须与调用 EEEOF 函数的键兼容。

这些序列的需求为:

  • 该序列的第一个字符在标准 ASCII 可打印字符之外。
  • 没有一个序列是另一个序列的初始部分 (尽管序列可能共享初始部分)。
/etc/map3270 文件由各种终端的条目组成。 条目的第一部分列出使用该条目的终端的名称。 这些名称应该与 /usr/share/lib/terminfo/*.ti 文件中的名称相同。
注: 通常,来自不同 /usr/share/lib/terminfo/*.ti 条目的多个终端使用相同的 /etc/map3270 文件条目。 例如,两者925925vb(对于具有可视标志的 925) 可能使用相同的 map3270 文件条目。 每个名称由以下名称分隔:| (竖线) ,之后是一个{(左花括号); 定义; 以及最后,}(右花括号)。

格式

这些定义以保留关键字开头,该关键字标识 3270 功能。 关键字后面跟一个 = (等号) ,反过来跟在各种字符串序列后面,以生成特定函数。 定义以 ";" (分号) 结尾。 字符串序列是包含在 "" 内的可打印 ASCII 字符 (单引号) 并由 | (竖线) 分隔。

可以在 "'" 中使用特殊字符 (单引号)。 ^ (插入标记) 指示一个控制字符。 例如,该字符串'^a'表示 Ctrl-A; 即,十六进制 1 (字符串'^A'生成相同的代码)。 生成deleterubout,输入'^d' '^?'(Ctrl-D 或 Ctrl-?)。 要在 /etc/map3270 文件中表示控制字符,您必须使用该插入标记。 TypingControl-ACtrl-A无效。
注: Ctrl-^ 键序列 (以生成十六进制 1E) 表示为:'^^'(非'^\^').

\ (反斜杠) 特殊字符位于其他字符之前以更改其含义。 因为这对大多数字符影响不大,所以建议不要使用它。 反斜杠阻止单引号终止字符串 (例如,字符串)'^\''表示 Ctrl-'。 要将反斜杠作为字符串的一部分,请放置两个反斜杠 ('\\') 在字符串中。

此外,以下字符是特殊的:

'\e'   Specifies an escape character.
'\n'   Specifies a new line.
'\t'   Specifies a tab.
'\r'   Specifies a carriage return.

字符串中的每个字符都不需要用单引号括起来。 字符串'\e\e\e'表示三个转义字符。

注释,可能出现在行上的任何位置,以 # (井号) 开头,并在该行结束时终止。 但是,注释不能在带引号的字符串内开始。 括在引号内的井号没有特殊意义。

支持 3270 密钥

注: 以下一些键在 3270 仿真器上不存在。 tn3270 命令不支持使用 * (星号) 列出的功能。 不受支持的功能会导致 tn3270 命令向用户的终端发送响铃序列。

/etc/map3270 文件支持 3270 键名的以下列表:

密钥名 功能描述
阿尔特克* 备用键盘 dvorak
阿普兰德* 将输入视为 ASCII
阿普洛夫* APL 关闭
阿普隆* APL 开启
注意 注意键。 注意键向虚拟机或 MVS 系统上的TELNET服务器发送IAC BREAK TELNET协议序列。 TELNET 服务器负责实施辅助操作请求键。
布特卜 字段选项卡返回
清除 3270 屏幕的本地清除
克勒卜 清除所有列选项卡
科尔巴克 "列后" 选项卡
科尔陶卜 "列" 选项卡
库尔塞尔* 光标选择
删除 删除字符
德尔陶卜 删除列选项卡
光盘 断开连接 (暂挂)
向下舍入 向下光标
dp 重复字符
埃福 擦除字段结束
埃因普 擦除输入
输入 输入密钥
擦除 (erase) 擦除最后一个字符
转义 进入 TELNET 命令方式
费拉塞 擦除字段
菲尔登德 Tab 键切换到当前或下一个未受保护 (可写) 字段的最后一个非空白字段
弗林普 清空输入
FM 字段标记字符
将光标置于主位置
缩进 缩进一个制表符停止页
初始化* 新终端类型
因斯特 切换插入方式
描述
向左 左光标
勒普特* 本地打印
主重置 重置,解锁和重新显示
nl 换行
pa1 程序注意 1
pa2 程序注意 2
pa3 程序注意 3
pfk1 程序功能键 1
pfk2 程序功能键 2
. .
. .
. .
pfk36 程序功能键 36。
普科夫* Xon/xoff
普孔* Xon/xon
重置 重置键-解锁键盘
雷索 重新显示屏幕
向右 右光标
塞托姆 设置主位置
塞特姆格 设置左页边距
设置选项卡 设置列选项卡
同步 正在与用户进行同步
制表符 "字段" 选项卡
特雷克 测试请求
取消缩进 取消缩进一个制表符停止页
向上舍入 上光标
werase 擦除最后一个词
词汇回退 跳至当前或最后一个字的开头
沃登德 跳至当前单词或下一个单词的结尾
字表 跳至下一个单词的开头
Xoff* 挂起输出
克松* 发行版输出

样本条目

以下缺省条目包含在 tn3270 命令中,并且在无法在用户环境或 /etc/map3270 文件中找到某个版本时使用。

name {                       # actual name comes from TERM variable
clear = '^z';
flinp = '^x';
enter = '^m';
delete = '^d' | '^?';        # note that '^?' is delete (rubout)
synch = '^r';
reshow = '^v';
eeof = '^e';
tab = '^i';
btab = '^b';
    
nl = '^n';
left = '^h';
right = '^l';
up = '^k';
down = '^j';
einp = '^w';
reset = '^t';
xoff = '^s';
xon = '^q';
escape = '^c';
ferase = '^u';
insrt = ' ';
# program attention keys
pa1 = '^p1'; pa2 = '^p2'; pa3 = '^p3';
# program function keys
pfk1 = '1'; pfk2 = '2'; pfk3 = '3'; pfk4 = '4';
pfk5 = '5'; pfk6 = '6'; pfk7 = '7'; pfk8 = '8';
pfk9 = '9'; pfk10 = '  '; pfk11 = '-'; pfk12 = '=';
pfk13 = ''; pfk14 = '@'; pfk15 = '0;
pfk17 = ''; pfk18 = ''; pfk19 = ''; pfk20 = ';
pfk21 = ' pfk22 = ')'; pfk23 = '_'; pfk24 = ' ';
}

3270 键定义

下表显示了在使用 tn3270 命令提供的缺省键映射时对每个 3270 功能进行仿真的正确键。

表 1. 3270 键定义
FUNCTION 3270 键 缺省键 (S)
命令键 输入 返回
  清除 Ctrl-Z
  注意 Ctrl-F12
光标移动键 换行 Ctrl-n 或 Home
  制表符 Ctrl-I
  "后退" 选项卡 Ctrl-B
  光标左移 Ctrl-H
  光标右移 Ctrl-L
  光标上移 Ctrl-K
  光标下移 Ctrl-j 或 LINE FEED
编辑控制键 删除字符 Ctrl-d 或 RUB
  擦除 EOF Ctrl-E
  擦除输入 Ctrl-W
  插入方式 ESC 空间
  结束插入 ESC 空间
描述
程序功能键 PF1 ESC 1
  PF2 ESC 2
  ... ...
  PF10 ESC 0
  PF11 ESC-
  PF12 ESC =
  PF13 ESC!
  PF14 ESC @
  ... ...
  PF24 ESC +
程序注意键 PA1 Ctrl-第 1 页
  PA2 Ctrl-第 2 页
  PA3 Ctrl-第 3 页
本地控制键 发生错误后重置 Ctrl-R
  清除输入缓冲区 Ctrl-X
  键盘解锁 Ctrl-T
  重新显示屏幕 Ctrl-V
其他键 擦除当前字段 Ctrl-U

文件

描述
/etc/3270.keys 包含缺省键盘映射。
/usr/share/lib/terminfo/*.ti 包含终端信息的文件。