当前位置:操作系统 > Unix/Linux >>

XWindow系统使用指南--第08章终端机模拟器-细说xterm

xterm 是终端机模拟器 - 它是一个可以使X应用程式视窗看起来像普通终端机一样的程式, 而无需知道有关视窗系统的功能. 我们已经使用过 xterm的一小部分, 在本章中将更深入地探讨它所提供的特殊额外功能. 并且说明许多X程式共通的一些应用程式介面的面貌.

  xterm 模拟一个 "哑终端机 (dumb terminal)", 但它也提供许多一般终端机没有的功能 :

  . 设定终端机模式与特性的突现式 (pop-up) 选单

  . 可以上下移动萤幕影像的卷动棒 (scrollbar) - 当文字列因萤幕卷动而消失时, 可以将它拉回.

  . 模拟 Tektronix 4014 终端机.

  . 可选择性地记录萤幕列到一个使用记录档 (log file).

  . "剪"(cut)"贴"(paste)文字区块.

  . 可选择文字颜色, 视窗背景等...

  . 可选择 VT100 与 Tek 视窗字型.

  . 可设定( 程式化(programmable))键盘.

  我们首先描述选择功能的选单结构, 接著描述如何使用选择功能.

  8.1 选择 xterm 功能 - 选单与命令列选项

  xterm 有它自己的内建选单结构, 可在使用期间改变设定. 有三个选单可供利用, 见图 8 - 1 :

  ┌————————————————┐

  │ p84. fig 8 - 1 │

  │ │

  │ │

  │ │

  │ 图 8 - 1 xterm 的三个选单 │

  └————————————————┘

  xterm X11 : 这里的大多数选择项目为程式控制功能, 例如 : continue program (程式继续) 或 kill program (杀掉程式). 欲突现此选单,必需同时按住 CONTROL 键与滑鼠左按钮.

  modes : 设定大多数终端机的特性与选择 Tektronix 模拟功能. 欲突现此选单, 须同时按住 CONTROL 键与滑鼠中间按钮 (当处於VT102 视窗时).

  Tektronix : 控制 Tektronix 视窗的外表. 当处於 Tektronix 视窗时, 须同时按住CONTROL 键与滑鼠中间按钮即可突现此选单.

  选单的操作类似 uwm, 藉著按滑鼠按钮可突现选单, 不放松按钮移动指标至想选的项目上; 放松按钮後即选定该项. 然而, 有一点不同的地方是, 不能被选择的选单项目 (因为此时选择将无意义) 是以较淡的型式显示. 例如: 因为尚未开启一个 Tektronix 视窗, 所以Hide VT Window 项目的颜色较淡.

  许多选单的功能也能以启动 xterm 的命令列选项来设定.(事实上有某些功能仅能以命令列选项的型式去选择). 下面几节我们将告诉你可以设定不同功能的选单选择与命令列选项的选择方式.

  8.2 卷动 xterm 的萤幕

  突现 xterm X11 选单并选择 Scrollbar 项目, 如图 8 - 2. 高亮度的部分告诉你两件事:

  1. 萤幕上的列数与储存在卷动棒缓冲区 (scrollbar's buffer) 的列数之比率.

  2. 缓冲区的哪个部份目前显示在萤幕上.

  例如在图 8 - 2 中 : 约有 20 列在萤幕上; 高亮度部分约为总列数的 5 分之 1,所以缓冲区包含有约 100 列, 且目前显示的部分是缓冲区的最底部 (因为高亮度区在卷动区的最底部).

  ┌—————————————————┐

  │ p85. fig 8 - 2 │

  │ │

  │ │

  │ │

  │ 图 8 - 2 具有卷动棒的 xterm 视窗 │

  └—————————————————┘

  你可以利用滑鼠按钮移动卷动区的高亮度部分, 以改变显示在萤幕上的文字.下面的小节将会解释; 为简化说明我们假设卷动缓冲区包含 100 列文字.

  注意 : xterm 采用异於其他视窗系统的卷动棒用法, 特别是 Apple Macintosh.

  8.2.1 移动卷动棒到指定点

  假如你想移动本文到某一指定位置, 例如 : 想看第 50 列之後的内容 :

  1. 移动指标到卷动棒. 游标变成垂直双箭头. (图 8 - 3a)

  2. 按滑鼠中间按钮 : 游标变成水平箭头 (图 8 - 3b), 且高亮度的顶端跳至游

  标处.(例如 : 假如你想看的部分从 50 列开始, 你应该将游标移到卷动区

  的中央)

  3. 假如视窗显示你所要的部分, 则可以放开按钮. 否则 ...

  4. ... 保持按住按钮, 移动指标 : 高亮度部分跟随著指标移动 (而视窗内的

  本文也随著高亮度区而卷动), 直到放松按钮.

  ┌————————————————┐

  │ p86. fig 8 - 3 │

  │ │

  │ │

  │ │

  │ 图 8 - 3 游标在卷动区的不同形状│

  └————————————————┘

  8.2.2 向前卷动本文

  卷动视窗内的本文使文字列往上移出萤幕顶端 : 高亮度区向卷动棒底部移动,

  视窗内并显示最近打入的本文. 上卷的步骤如下 :

  1. 移动指标到卷动棒. 和前面一样游标变成垂直双箭头.

  2. 按下滑鼠左按钮 : 游标变成向上箭头. (图 8 - 3c)

  3. 放开按钮 : 与箭头在同一列的文字移到萤幕顶端, 且高亮度区也随著调整.

  ( 以图形来表示,如图 8 - 4. 注意到移动量的多少与你放开按钮时的位置

  有关 : 若接近顶端, 你可以获得的移动量小, 接近底部则当然可以获得较

  大的卷动量).

  ┌————————————————┐

  │ p87. fig 8 - 4 │

  │ │

  │ │

  │ │

  │ │

  │ 图 8 - 4 在一个视窗内卷动本文 │

  └————————————————┘

  8.2.3 向後卷动本文

  向後卷动视窗本文, 文字列由萤幕底部移出, 使你得以看见先前打入的文字列

  . 操作程序类似向前卷动, 但方向相反, 此时使用滑鼠右按钮, 出现向下箭头 (图

  8 - 3d).

  8.2.4 其他卷动选项

  只要你已经启动卷动功能, 有两个Modes选单的选项可供利用.

  Scroll to bottom on tty output (若有 TTY 输出将输出自动卷到底) :

  若你目前不在卷动区的底部, 稍後某些终端机的输出到达视窗时会自动

  地移动到卷动区的尾端. 此功能为预设的. 若此功能被关闭, 你要看最

  新的输出必须自行卷动视窗.

  Scroll to bottom on key press (按键才卷到底) : 若你不在卷动区的底部,

  稍後你按一个键, 视窗会自动移动至卷动区的尾端. 此功能不预设, 但通常你

  的终端机设定成当你键入时回应一个字元 : 这些字元为TTY 输出, 且将引起

  视窗被卷到底部.

  8.2.5 以命令列选项控制卷动

  -sb : 允许使用卷动棒. (预设 : 禁能(disable))

  -sl num : 储存被卷离萤幕的若干列本文. (预设为 64)

  -sk : 致能(enable)当按键才卷到底. (预设 : 禁能)

  -si : 致能当终端机输出时卷到底. (预设 : 致能)

  8.3 记录你与终端机的交谈过程 - 写记录 (logging)

  突现 xterm X11 选单, 并选择 logging 选项. (假如你现在是第二次叫同样的

  选单,在 logging 选项旁边, 你会看到一个沙漏标志 (tick-mark) , 表示它是启动

  的) 从此以後, 所有终端机输出除了被送到萤幕以外, 也会被送至一个档案. 你可

  以获得一个使用过程的永久记录. 预设的状况是将输出写到 xtermlog.pid 档案.

  其中 pid 为xterm 处理识别码. 此档案被建於启动 xterm 时的目录 (你也可以利用

  下面介绍的命令列选项去改变登录档名).

  你可以藉著 xterm X11选单停止或再度logging,反覆的停止和开始logging,你

  可以作选择性的记录,logging 的输出永远附加在登录档案(log-file)之後,每一次

  都不会覆写(overwrite)登录档。

  8.3.1 以命令列选项控制登录使用过程

  -l : 致能登录使用过程

  -lf file : 将登录档写入指定档, 以取代预设档 (指定登录档仅设定登录档

  名而不致能登录功能; 必需另外使用 -l 来致能登录)

  使用一个导管 (Pipeline) 作为登录 "档"

  -lf 选择项有一个特殊功能 : 假如 file 引数以导管记号 (|) 开头, 则其馀

  部分视为登录输出的一个管路. 例如 : 假设你的系统 (shell) 提示是 venus%,

  使用下列命令去启动 xterm 并记录於 cmdlog 档, 只需键入

  xterm -l -lf '| grep "^venus% " > cmdlog'

  8.4 剪与贴本文

  你可以从 xterm 视窗 "剪" (cutting) 部分本文, 亦即拷贝本文到一个 "剪

  缓冲区" (cut
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,