[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

OpenVMS 用户手册


前页 目录 索引

8.18.1 获得缓冲区信息

要显示当前缓冲区的更多信息,输入 SHOW 命令。显示的信息包括缓冲区是否已修改,另外有以下信息:

  • 缓冲区名
  • 输入、输出和缓冲区更改日志文件的名称
  • 当前模式和方向
  • 行数
  • 页边距和屏幕宽度设置
  • 段落缩排
  • WPS 字绕接
  • 绕接缩进
  • 制表符停止列

如果在编辑对话期间有一个以上缓冲区是活动的,那么 EVE 提示您按下 Do 键可获得其他缓冲区的信息。

8.18.2 删除缓冲区

要删除缓冲区,输入 DELETE BUFFER 命令并指定想要删除的缓冲区名。如果缓冲区是空的或未修改的,EVE 就删除它。然而,如果缓冲区已修改,EVE 则提示您作出选择。注意,必须完整地键入缓冲区名;不允许缩写。如果想要删除正在观看的缓冲区,EVE 就用在编辑对话期间存在的最旧缓冲区替换这个缓冲区。

下表列出可以输入的选择:

关键字 效果
DELETE_ONLY 删除指定的缓冲区。
WRITE_FIRST 写出 (保存) 指定的缓冲区,然后删除它。
QUIT 默认选择。不删除缓冲区。

在以下例子中,请求删除被修改的缓冲区 MYFILE.TXT:


Command: DELETE BUFFER MYFILE.TXT
That's a modified buffer. Type delete_only, write_first, or quit:

8.18.3 更改缓冲区状态

使用 SET BUFFER 命令可更改缓冲区的编辑状态;即缓冲区是否可以修改,以及在退出 EVE 后缓冲区是否会写入一个文件。

您可以为 SET BUFFER 命令指定以下关键字之一:

关键字 效果
MODIFIABLE 默认设置。缓冲区可以修改。也恢复缓冲区的以前模式 (插入或重键)。
READ_ONLY 退出时缓冲区保存 (写出),即使它已被修改 (与 WRITE 相反)。也把缓冲区设置为不可修改的。然而,可以把它设置为可修改 的。
UNMODIFIABLE 缓冲区不能修改。也取代缓冲区的模式 (插入或重键)。
WRITE 默认设置。如果缓冲区已被修改,在退出时就保存 (写出) 它 (与 READ_ONLY 相反)。如果缓冲区是只读或者不可修改的,那么 SET BUFFER WRITE 使它可修改,并且恢复到它以前的模式 (插入或重键)。

按照默认,缓冲区状态设置为 MODIFIABLE 和 WRITE,使您可以更改缓冲区的内容,并把更改的缓冲区保存到一个文件中。

要更改缓冲区的状态,使它的内容不能因疏忽大意而更改,则使用以下命令把缓冲区设置为 READ_ONLY (意味着不可修改):


Command: SET BUFFER READ_ONLY

要更改缓冲区的状态使它成为临时存储区域 (一个 "便签簿"),可使用以下命令把缓冲区设置为 READ_ONLY 和 MODIFIABLE:


Command: SET BUFFER READ_ONLY
Command: SET BUFFER MODIFIABLE

然后,可以编辑缓冲区,但是当退出 EVE 时,它将不被保存。

8.18.4 显示消息缓冲区

在编辑对话期间,EVE 使用出现在屏幕底部的消息窗口,传达出错和通知信息。消息窗口显示消息缓冲区中的最新消息。

使用 BUFFER 命令您可以显示这些消息。要显示消息缓冲区的内容,按下 Do 并输入命令 BUFFER MESSAGES。要返回到刚才编辑的缓冲区,按下 Do 并输入 BUFFER 命令,后面跟随适当的缓冲区名。

您也可以输入 SHOW BUFFERS 命令显示已经建立的缓冲区,并按下 Select 键可挑选一个缓冲区。

8.18.5 编辑多个缓冲区

如果想要编辑一个以上文件,或者如果想要临时存储区域处理多块文本,可以使用几个缓冲区。您可以使用以下命令之一建立一个新缓冲区: GET FILE 或 OPEN、OPEN SELECTED 或 BUFFER。

使用 GET FILE 命令

要为一个已经存在的文件建立一个新缓冲区,可输入 GET FILE (或 OPEN) 命令和想要复制到新缓冲区的文件名。可以使用星号 (*) 通配符代替在文件名和文件类型中的所有或一些字符。可以使用百分号 (%) 通配符代替在文件名和文件类型中的一个字符,并且可以使用省略号 ([...]) 通配符代替一个目录说明。

使用 OPEN SELECTED 命令

您也可以使用 OPEN SELECTED 命令建立一个新缓冲区,如下所示:

  1. 把光标放在想要打开文件的名称上。
  2. 输入 OPEN SELECTED 命令。

使用 BUFFER 命令

要把特定的缓冲区放入当前 EVE 窗口,输入 BUFFER 命令和想要放入当前 EVE 窗口的缓冲区名。在缓冲区名中不能使用通配符。星号 (*) 和百分号 (%) 被视为缓冲区名中的文字字符。如果指定的缓冲区不存在,EVE 建立一个新缓冲区。

如果存在指定的文件,EVE 就把文件的内容读入新缓冲区,并在当前窗口显示缓冲区。如果带通配符的文件说明有一个以上匹配,EVE 就在 $CHOICES$ 缓冲区中显示一个选择列表,并提示您提供一个更完整的文件说明。如果使用一个搜索列表或一个省略号 ([...]) 通配符,EVE 将打开它匹配的第一个文件。否则,EVE 建立一个空的缓冲区并在当前窗口显示该缓冲区。

要更改在当前窗口的缓冲区,按下 Do 键,键入 BUFFER 和想要在屏幕上显示缓冲区的名称,然后按下 Enter 键。如果您忘记缓冲区名,输入 SHOW BUFFERS 命令可显示在编辑对话期间的活动缓冲区名,并使用 Select 键指定一个缓冲区。

8.18.6 把文件读入 EVE

有四种方法可把文件读入 EVE 缓冲区:

  • 调用 EVE 时带一个文件说明。
  • 输入 INCLUDE FILE 命令和想要包括文件的名称。EVE 把整个文件内容读入缓冲区,放在光标所在行之前。使用 INCLUDE FILE 命令不更改在状态行上的缓冲区名。
  • 输入 GET FILE 或 OPEN 命令和想要使用文件的名称。任意一个命令都建立一个新缓冲区,并把现有文件的内容读入缓冲区。在状态行上的缓冲区名与使用 GET FILE 或 OPEN 命令指定的文件名一样 (请参阅 8.18.5 节)。
  • 选择或查找一个文件名,然后输入 OPEN SELECTED 命令。

8.18.7 从 EVE 写入文件

要把当前缓冲区的内容写入文件,输入 WRITE FILE 命令。使用 WRITE FILE 命令可以包括一个文件说明。如果不包括文件说明,EVE 就用输入文件说明写入文件。如果已使用 BUFFER 或 NEW 命令建立当前缓冲区,那么 EVE 提示输入要写入文件的文件说明。

以下例子展示如何使用与缓冲区关联的输出文件把一个缓冲区写入文件:


Command: GET FILE RHYMES.DAT
    .
    .
    .
Command: WRITE FILE

3 lines written to WORKDISK:[USER]RHYMES.DAT;2

8.18.8 使用窗口

在 EVE 编辑对话期间,正在编辑的缓冲区显示在屏幕的一个窗口上。突出显示的状态行出现在窗口的底部,标识缓冲区的名称、当前编辑模式和当前方向。

EVE 让您在终端屏幕上同时观看一个以上窗口。例如,在终端屏幕上可以有两个窗口观看和编辑同一缓冲区的不同部分。

表 8-16 描述用于建立和处理窗口的 EVE 键。

表 8-16 在 EVE 窗口中使用的键
键或组合键 在窗口环境下的功能
GOLD Next Screen 把光标移入下一个 (或其他) 窗口。与 NEXT WINDOW 命令一样。
GOLD Prev Screen 把光标移入上一个 (或其他) 窗口。与 PREVIOUS WINDOW 命令一样。

表 8-17 描述用于建立和处理窗口的 EVE 命令。

表 8-17 EVE 窗口命令
命令 在窗口环境下的功能
DELETE WINDOW 如果正使用一个以上窗口,则删除当前窗口。
ENLARGE WINDOW 按指定行数放大当前窗口。例如,ENLARGE WINDOW 5 放大窗口 5 行。而邻近窗口相应缩小。
NEXT WINDOW
或 OTHER WINDOW
把光标移入下一个 (或其他) 窗口。
ONE WINDOW 把当前窗口恢复为单个大窗口。EVE 从屏幕上删除所有其他窗口。不删除与那些窗口关联的缓冲区。
PREVIOUS WINDOW 把光标移入上一个 (或其他) 窗口。
SET WIDTH 设置在屏幕上显示的行宽。指定宽度为一个正整数。按照默认,屏幕宽度就是您的终端设置 (通常 80 列)。如果设置的宽度比 80 大,那么 EVE 把终端设置为 132 列模式用于当前编辑对话期。当退出 EVE 时,终端恢复到默认设置。宽度设置会更改在所有窗口中的文本显示。
SHIFT LEFT 把当前窗口向左移动指定的列数。使用 SHIFT LEFT 命令与 SHIFT RIGHT 命令的效果相反。
SHIFT RIGHT 把当前窗口向右移动指定的列数,因而可以观看当前不出现在终端屏幕上的几列字符。
SHRINK WINDOW 按指定行数缩小当前窗口。例如,SHRINK WINDOW 5 缩小窗口 5 行。而邻近窗口相应放大。
SPLIT WINDOW 拆分当前窗口,形成两个较小窗口。在这个命令中指定一个数目,可以把窗口拆分成两个以上。例如,SPLIT WINDOW 3 把窗口拆分为三 个窗口。
TWO WINDOWS 与 SPLIT WINDOW 2 命令一样。

8.18.9 观看一个缓冲区的两个部分

要同时观看一个文件的两个部分,使用 SPLIT WINDOW 命令。EVE 拆分屏幕,建立两个同样的窗口。光标在缓冲区中保持它的位置,但只在底部窗口出现。在两个状态行中的缓冲区名是一样的。

显示一个长文件的两个部分,使在文件内移动文本更加有效率。可以从文件的一个部分选择和除去文本,并把它插入到另一部分。要把光标从一个窗口移动到另一个窗口,可输入 NEXT WINDOW 命令。

要从屏幕除去第二个窗口并放大当前窗口占用整个编辑区域,按下 Do 键,输入命令 ONE WINDOW,并按下 Enter 键。

8.18.10 编辑两个缓冲区

以下过程描述如何编辑包含不同文件的两个缓冲区:

步骤 任务
1 输入 SPLIT WINDOW 命令,在屏幕上建立两个窗口。

EVE 拆分屏幕并建立两个窗口。光标在缓冲区中保持它的位置,但只在底部窗口出现。在每个突出显示状态行中的缓冲区名是一样的。

2 使用 GET FILE、OPEN 或 OPEN SELECTED 命令把第二个文件放入在当前窗口。

要在当前窗口上显示在编辑对话期间较早建立的缓冲区,输入 BUFFER 命令和想要显示的缓冲区的名称。

现在,终端屏幕显示两个不同缓冲区。可以从一个缓冲区选择和除去文本,并把它插入到另一个缓冲区。要把光标从一个窗口移动到另一个窗口,可输入 NEXT WINDOW 命令。

8.19 建立子进程

您可以建立一个子进程以便在 EVE 编辑对话期和 DCL 命令级之间转换,而不必终止编辑对话期。要建立一个子进程,输入 SPAWN 命令。EVE 暂停当前编辑对话期,而把终端连接到一个新子进程。DCL 提示 ($) 出现在终端屏幕上。

8.19.1 派生

尽管子进程可以调用任何 OpenVMS 公用程序或执行任何 DCL 命令,但要派生子进程的最一般原因是要调用 Mail 公用程序和运行面向屏幕的程序。

要返回编辑对话期,可输入 DCL 命令 LOGOUT 从子进程注销。EVE 恢复编辑对话期,并且光标出现在它在派生子进程之前占据的位置。也可以为 SPAWN 命令提供一个 DCL 命令作为参数来建立特定的子进程。

在以下例子中,Mail 公用程序从 EVE 派生:


[End of file]


Buffer: MAIN                           | Write | Insert | Forward
Command: SPAWN MAIL

Mail 公用程序的提示 (MAIL>) 出现在屏幕上。退出 Mail 时,自动从这个子进程注销,而 EVE 恢复编辑对话期。

8.19.1.1 从 DCL 派生 EVE

比派生进程使用 DCL 进一步,可以派生一个用于 EVE 编辑对话期的进程,然后连接父 DCL 进程来使用 DCL 命令和公用程序。

要返回到 DCL 命令级时,使用 EVE 命令 ATTACH 返回到父进程。

要恢复编辑对话期,使用 DCL 命令 ATTACH 及子进程名,可重新连接到编辑子进程。

在以下例子中,使用 DCL 命令 SPAWN 建立一个子进程。SPAWN 命令建立子进程 SMITH_1。在这个子进程级中,调用 EVE 而建立编辑对话期。在编辑对话期结束时,输入 ATTACH 命令而返回到 DCL。然后,要恢复编辑对话期,输入使用子进程名 SMITH_1 的 DCL 命令 ATTACH:


$ SPAWN
%DCL-S-SPAWNED, process SMITH_1 spawned
%DCL-S-ATTACHED, terminal now attached to process SMITH_1


[End of file]


Buffer: MAIN                        | Write | Insert | Forward
Command: ATTACH SMITH

$ ATTACH SMITH_1


第 9 章
排序和合并文件

本章描述如何使用 OpenVMS Sort/Merge 公用程序 (SORT/MERGE)。Sort/Merge 公用程序执行两个操作:

  • 根据选择的字段排序来自一个或多个输入文件的记录,并产生一个重新排序的输出文件
  • 根据同样的字段,合并多达 10 (高性能 Sort/Merge 公用程序支持多达 12) 个以前排序过的输入文件,并产生一个输出文件。

在 Alpha 系统上,您也可以挑选高性能 Sort/Merge 公用程序。这个公用程序利用 Alpha 结构为多数排序和合并操作提供更好的性能。有关信息,请参阅 9.1 节

本章描述:

  • 高性能 Sort/Merge
  • 排序文件
  • 指定比较顺序
  • 以批量作业方式运行 Sort
  • 合并文件
  • 从终端输入记录
  • 使用 Sort/Merge 说明文件
  • 优化 Sort 或 Merge 操作
  • Sort/Merge 限定词概要

有关详情,参阅以下:

  • 有关本章使用的命令详情,请参阅 OpenVMS DCL Dictionary
  • 有关使用 Sort/Merge 公用程序时系统管理员如何提高效率的详情,请参阅 OpenVMS System Manager's Manual

9.1 高性能 Sort/Merge

在 Alpha 系统上,您也可以挑选高性能 Sort/Merge 公用程序。这个公用程序利用 Alpha 结构为多数排序和合并操作提供更好的性能。

高性能 Sort/Merge 公用程序使用与 SORT/MERGE 同样的命令行界面。在高性能 Sort/Merge 公用程序和 SORT/MERGE 之间的任何差别都在本章加以注释。

使用 SORTSHR 逻辑名选择高性能 Sort/Merge 公用程序。在 SYS$LIBRARY 中,定义 SORTSHR 指向高性能排序执行文件,如下所示:


$ define sortshr sys$library:hypersort.exe

要返回到 SORT/MERGE,解除赋值 SORTSHR。如果没有定义 SORTSHR,那么 Sort/Merge 公用程序是默认值。

注意

存储器分配差别可能限制高性能 Sort/Merge 公用程序执行同样数目的并行排序操作的能力,因为 Sort/Merge 公用程序可以在同样数量的虚拟存储器上执行。

如果出现这种情况,就可以增加可用于进程的虚拟存储器的数量,或者减少工作区范围。有关使用系统参数更改虚拟存储器数量或减少工作区范围的详情,请参阅 OpenVMS System Management Utilities Reference Manual

 

高性能 Sort/Merge 公用程序的行为与 SORT/MERGE 一样,但表 9-1 所展示的除外。

如果尝试使用一个不支持的限定词或者分配一个不支持值给限定词,那么高性能 Sort/Merge 公用程序将出错。

表 9-1 高性能 Sort/Merge: 在行为上的差别
特性 高性能 Sort/Merge 行为
键数据类型 不支持 H-FLOATING 和 ZONED 十进制数据类型。

BINARY 数据类型键的大小必须是 1、2、4 或 8 字节。不支持 16 字节的二进制键。(这个特性的实现有待将来的 OpenVMS Alpha 发行版本。)

比较顺序 不支持国家字符集 (NCS) 比较顺序。(这个特性的实现有待将来的 OpenVMS Alpha 发行版本。) 不要为 /COLLATING_SEQUENCE 限定词指定一个 NCS 比较顺序的名称。支持 ASCII、EBCDIC 和 MULTINATIONAL 比较顺序。默认是 ASCII。

不能使用一个说明文件定义或修改自己的比较顺序。(这个特性的实现有待将来的 OpenVMS Alpha 发行版本。)

说明文件 不支持说明文件。(这个特性的实现有待将来的 OpenVMS Alpha 发行版本。) 不要使用 /SPECIFICATION 限定词。
内部排序进程 只支持记录排序进程。(这个特性的实现有待将来的 OpenVMS Alpha 发行版本。) 可以指定 /PROCESS=RECORD 或省略 /PROCESS 限定词。不支持 /PROCESS 限定词的 TAG、ADDRESS 和 INDEX 值。
统计概要信息 当前支持以下统计:
读取的记录 
排序的记录
输出的记录
输入记录长度

以下统计是不可用的:

内部长度
输出记录长度
排序树大小
初始运行的数目
最大合并次序
合并成功的数目
工作文件分配

这个特性的完整实现有待将来的 OpenVMS Alpha 发行版本。


前页 后页 目录 索引