xterm [ -ToolkitOption ... ] [ -Option ... ]
xterm 程序是 X Window System 的终端仿真器。它向不能直接使用视窗系统的程序提供 DEC VT102 和 Tektronix 4014 兼容终端。如果基础操作系统支持终端缩放功能,则 xterm 程序使用这些工具在窗口缩放时通知视窗系统中运行的程序。
VT102 和 Tektronix 4014 终端都有自己的窗口,因此可以同时在一种视窗系统中 编辑文本而在另一种中查看图像。为保持正确的纵横比(高/宽),Tektronix 图像被限制为适合窗口大小且符合 4014 纵横比的最大框。该框位于窗口的左上区域。
虽然两个窗口可同时显示,但是其中一个会被认定 为接收键盘输入和终端输出的活动窗口。该窗口是 包含文本光标的窗口。活动窗口可以通过以下转义序列来选择:VT102 窗口中的 VT Options 菜单 和 4014 窗口中的 Tek Options 菜单。
VT102 仿真相当完备,但不支持 平滑滚动、VT52 方式、闪烁字符属性或是双倍宽和双倍大小字符集。与 xterm 命令 一起使用的 termcap 文件条目 包括 xterm、vt102、vt100 和“ansi”,而且 xterm 命令自动按这个顺序在 termcap 文件中搜索这些条目,并设置 TERM 和 TERMCAP 环境变量。
很多专用的 xterm 功能可以在程序控制下通过一组与 标准 VT102 转义序列不同的转义序列进行修改。
Tektronix 4014 仿真也相当优良。它支持 12 位的图像寻址,可以扩大到指定窗口大小。它支持四种不同的字体大小 和五种不同的行类型。不支持直写或散焦方式。
Tektronix 文本和图像命令由 xterm 命令进行内部记录,并可能通过发送 COPY 转义序列(或是 通过 Tektronix 菜单,这会在以下各节描述)写入一个文件。该文件的名称将是 COPYyy-MM-dd.hh:mm:ss, 其中,yy、MM、dd、hh、mm 和 ss 是 执行复制的年、月、日、小时、分钟和秒(该文件是在启动 xterm 命令 的目录,或登录 xterm 的主目录中创建的)。
xterm 命令在指针进入窗口(选中)时自动突出显示文本光标,在指针离开窗口时(未选中)对它取消突出显示。如果窗口是焦点窗口,无论指针定位在何处,文本光标都会突出显示。
在 VT102 方式中,可使用转义序列激活和停用备用屏幕缓冲区, 备用屏幕缓冲区的大小与窗口的显示区域大小相同。当激活时,当前屏幕被保存并替换为 备用屏幕。对超出窗口顶部的滚动行的保存被禁用,直至恢复通常的屏幕。
xterm 命令的 termcap 文件条目允许 vi 命令编辑器切换到备用屏幕进行编辑并在退出时恢复屏幕。
在 VT102 方式或 Tektronix 方式中,都有更改窗口名称的转义序列。
xterm 终端仿真器接受所有 标准 X Toolkit 命令行选项以及以下选项(如果选项以 a+ 开始而不是 a-,选项恢复为缺省值):
以下命令行自变量是为兼容旧版本而提供的。由于 X Toolki 提供完成同样任务的标准选项,在下个发行版中也许不支持这些自变量。
以下标准 X Toolkit 命令行参数通常与 xterm 命令一起使用:
-bg Color | 指定窗口背景使用的颜色。缺省值是白色。 |
-bd Color | 指定窗口边框使用的颜色。缺省值为黑色。 |
-bw Number | 指定环绕窗口边框的宽度(以像素计算)。 |
-fg Color | 指定用于显示文本的颜色。缺省值为黑色。 |
-fn Font | 指定用于显示普通文本的字体。缺省值是 fixed。 |
-name Name | 指定获取资源的应用程序名,而不是缺省的可执行文件名。Name 参数不应包含 .(点)或是 *(星号)字符。 |
-title String | 指定窗口标题字符串,该标题会在用户选择时由视窗管理器显示出来。缺省标题是 在 -e 选项后指定的命令行(如果有的话);否则,就是应用程序名。 |
-rv | 表明反转视频应当通过调换前景和背景颜色来进行模拟。 |
-geometry Geometry | 指定 VT102 视窗的首选位置和大小;请参阅 X 命令。 |
-display Display | 指定要联系的 X 服务器;请参阅 X 命令。 |
-xrm ResourceString | 指定要使用的资源字符串。这对设置没有单独命令行选项的资源特别有用。 |
-iconic | 表明 xterm 命令应该要求视窗管理器将该命令作为一个图标启动,而不是作为普通窗口启动。 |
本程序能接受并解释所有核心 X Toolkit 资源名、类以及:
以下资源是作为 vt100 小窗口(类 VT100)的一部分指定的:
allowSendEvents(类 AllowSendEvents) | 指定是否应当解释或废弃合成键和按键事件(使用 X 协议 SendEvent 请求生成这些事件)。缺省值是 False,表示应该废弃这些键和事件。注意:允许这些事件会造成很大的安全性漏洞。 |
alwaysHighlight(类 AlwaysHighlight) | 指定 xterm 是否应该始终突出显示文本光标。缺省情况下,无论是指针移动到窗口外还是窗口丧失输入焦点,都显示一个中空的文本光标。 |
appcursorDefault(类 AppcursorDefault) | 如果值为 True,光标键最初为应用程序方式。缺省值为 False。 |
appkeypadDefault(类 AppkeypadDefault) | 如果值为 True,小键盘键最初为应用程序方式。缺省值为 False。 |
autoWrap(类AutoWrap) | 指定是否应当启用自动回绕。缺省值为 True。 |
bellSuppressTime(类 BellSuppressTime) | 指定发送铃声命令后的毫秒数,在这期间其它的铃声都将会被禁止。缺省值是 200。如果设置为非零值,其它铃声将被禁止直到服务器报告 第一个铃声的处理已经完成为止;该功能对可视铃特别有用。 |
boldFont(类 BoldFont) | 指定要使用而不是进行叠印的粗体字体的名称。 |
c132(类 C132) | 指定是否应当使用 VT102 DECCOLM 转义序列。缺省值为 False。 |
charClass(类CharClass) | 指定以下格式的字符类绑定的以逗号分隔的列表:[low-]high:value。它们用来确定在剪切和粘贴时应该对哪些组字符同等对待。请参阅字符类。 |
curses(类 Curses) | 指定是否应该回避 curses 功能中最后一列程序错误。缺省值为 False。 |
cutNewline(类 cutNewline) | 如果为 false,三次单击选择一行时不包括行尾的换行符。如果为 true,则同时选中换行符。缺省值是 true。 |
cutToBeginningofLines(类 CutToBeginningOfLine) | 如果为 false,三次单击选择一行时仅选中从当前单词向前的部分。如果为 true,则选择整行内容。缺省值是 true。 |
background(类 Background) | 指定窗口背景使用的颜色。缺省值是白色。 |
foreground(类 Foreground) | 指定用于显示窗口中文本的颜色。设置类名而非实例名是使通常以文本颜色显示的内容更改颜色 的一种简单途径。缺省值为黑色。 |
cursorColor(类 Foreground) | 指定文本光标使用的颜色。缺省值为黑色。 |
eightBitInput(类 EightBitInput) | 如果值为 True,在八位输入打开的情况下,键盘的元字符输入作为单个字符出现。如果为 False, 元字符转换为一个 2 字符的序列,字符本身之前插入 ESC。缺省值为 True。 |
eightBitOutput(类 EightBitOutput) | 指定从主机发送的 8 位字符是否应该按原样接受或是在打印时予以删节。缺省值为 True。 |
font(类 Font) | 指定常规字体的名称。缺省值是 fixed。 |
font1(类 Font1) | 指定第一个备用字体的名称。 |
font2(类 Font2) | 指定第二个备用字体的名称。 |
font3(类 Font3) | 指定第三个备用字体的名称。 |
font4(类 Font4) | 指定第四个备用字体的名称。 |
font5(类 Font5) | 指定第五个备用字体的名称。 |
font6(类 Font6) | 指定第六个备用字体的名称。 |
geometry(类 Geometry) | 指定 VT102 视窗的首选位置和大小。 |
hpLowerleftBugCompat(类 hpLowerleftBugCompat) | 指定是否应当回避 xdb 中的程序错误, 它忽略条件冒并会一直发送 ESC F 来移动到左下角。true 导致 xterm 将 ESC F 解释为移动到屏幕左下角的请求。缺省值是 false。 |
internalBorder(类 BorderWidth) | 指定字符与窗口边框之间的像素值。缺省值是 2。 |
jumpScroll(类 JumpScroll) | 指定是否应当使用跳跃滚动。缺省值为 True。 |
loginShell(类 LoginShell) | 指定在窗口中运行的 shell 是否应当作为登录 shell 启动。缺省值为 False。 |
marginBell(类 MarginBell) | 指定在用户输入靠近右页边距时是否应当响起铃声。缺省值为 False。 |
multiClickTime(类 MultiClickTime) | 指定多击选择事件之间的最长时间(以毫秒计算)。缺省值是 250 毫秒。 |
multiScroll(类 MultiScroll) | 指定是否应当进行异步滚动。缺省值为 False。 |
nMarginBell(类 Column) | 指定从右页边距开始的字符数,在该处页边距铃会响铃(如果该选项已启用)。 |
pointerColor(类 Foreground) | 指定指针的前景色。缺省值是 XtDefaultForeground。 |
pointerColorBackground(类 Background) | 指定指针的背景色。缺省值是 XtDefaultBackground。 |
pointerShape(类 Cursor) | 指定指针形状的名称。缺省值是 xterm。 |
resizeGravity(类 ResizeGravity) | 在调整窗口大小到更高或更短时会影响其行为。NorthWest 指定屏幕文本的顶行保持固定。如果窗口变低,请从底部删除行;如果窗口变高,请在底部添加空白行。
这与 MIT 版本 X11R4 的行为相兼容。SouthWest(缺省值)指定屏幕文本的底行保持固定。如果窗口变高,其它的已保存的行会向下滚动到屏幕上;如果视窗变低,行会滚出屏幕顶部,顶部已保存的行会被删除。 |
reverseVideo(类 ReverseVideo) | 指定是否应当模拟反转视频。缺省值为 False。 |
reverseWrap(类 ReverseWrap) | 指定是否应当启用逆向回绕。缺省值为 False。 |
saveLines(类 SaveLines) | 指定在滚动条打开时要保存的、超出屏幕顶端的行数。缺省值是 64。 |
scrollBar(类 ScrollBar) | 指定是否应当显示滚动条。缺省值为 False。 |
scrollTtyOutput(类 ScrollCond) | 指定到终端输出是否应当使滚动条自动滚动到滚动区域底部。缺省值为 True。 |
scrollKey(类 ScrollCond) | 指定按键操作是否应当使滚动条自动滚动到滚动区域底部。缺省值为 False。 |
scrollLines(类 ScrollLines) | 指定 scroll-back 和 scroll-forw 操作应该作为缺省值使用的行数。缺省值是 1。 |
signalInhibit(类 SignalInhibit) | 指定在 Main Options 菜单中发送信号到 xterm 的条目是否应该被禁止。缺省值为 False。 |
tekGeometry(类 Geometry) | 指定 Tektronix 视窗的首选位置和大小。 |
tekInhibit(类 TekInhibit) | 指定输入 Tektronix 方式的转义序列是否应当被忽略。缺省值为 False。 |
tekSmall(类 TekSmall) | 指定如果没有给定明确的几何图形,Tektronix 方式下的窗口是否应该以最小大小启动。在小 屏幕显示器上运行 xterm 命令时这十分有用。缺省值为 False。 |
tekStartup(类 TekStartup) | 指定 xterm 是否应该以 Tektronix 方式启动。缺省值为 False。 |
titeInhibit(类 TiteInhibit) | 指定 xterm 是否应当 从 TERMCAP 字符串除去 ti 和 te 条件冒文件条目 (在很多面向屏幕的程序启动时,用来在备用屏幕之间切换)。如果设置此选项,xterm 命令也会忽略切换到备用屏幕的转义序列。 |
translations(类 Translations) | 指定菜单、选项、已编程字符串等等的键和按钮绑定。请参阅“操作”。 |
visualBell(类 VisualBell) | 指定当接收到 Ctrl+C 按键顺序信号时是否应当用可视铃(闪烁)来替代音效铃。缺省值为 False。 |
以下资源是作为 tek4014 小窗口(类 Tek4014)的一部分来指定的:
可能为各种不同菜单指定的资源在 Athena SimpleMenu 小窗口的文档中都有描述。以下是每个菜单中各条目的类和名称的列表。
mainMenu 包含以下条目:
vtMenu 包含以下条目:
fontMenu 包含以下条目:
tekMenu 包含以下条目:
以下资源在指定给 Athena Scrollbar 小窗口时十分有用:
thickness(类 Thickness) | 指定滚动条的宽度(以像素值计算)。 |
background(类 Background) | 指定滚动条背景使用的颜色。 |
foreground(类 Foreground) | 指定滚动条前景使用的颜色。滚动条的滚动块是一个简单的棋盘图案,其前景色和背景色可以使用交替像素。 |
创建 VT102 窗口后,使用 xterm 命令可以选择文本并将其复制到相同或不同的窗口中。
当指针按钮不与任何修改键一起使用时,以及当它们与 Shift 键一起使用时,会调用选择功能。对键和按钮的功能分配可以通过资源数据库来更改。
指针按钮 1(通常为左按钮)用于将文本保存到剪切缓冲区。将光标 移动到文本开头,然后按住按钮并将光标拖动到区域结束处并释放按钮。选中的文本突出显示 并被保存在全局剪切缓冲区中,在松开按钮时进行 PRIMARY 选择(主选择)。
双击按文字进行选择,连击三次按行进行选择, 连击四次回到字符状态。多次单击是由松开按钮到按下按钮的时间长短决定的, 因此可以在选择中更改选择单位。如果键或按钮绑定指定要进行的 X 选择,xterm 命令将会使选中的文本保持为突出显示,只要它是选择执行者。
指针按钮 2(通常为中间按钮)从 PRIMARY 选择(如果有,否则从剪切缓冲区)中“输入”(粘贴)文本,将文本作为键盘输入插入。
指针按钮 3(通常为右按钮)扩展当前选择。如果按下时靠近选择区的右边比左边近,它扩展或收缩选择区的右边界。如果收缩选择范围越过了选择区的左边界,xterm 命令认定确实指的是左边界并恢复原选择,然后扩展或收缩选择区的左边界。
反之亦然:如果按下时靠近选定范围的左边界比右边界近,它扩展/收缩选定范围的左边界。如果收缩选择范围超出了选择区的右边界,xterm 命令假定确实指的是右边界并恢复原选择,然后扩展/收缩选择区的右边界。扩展用上次选择或扩展执行的选择单元方式来启动;可以多击按钮来循环使用选择方式。
例如,在剪切和粘贴一块块文本而不包含后续换行符时,可以从不同窗口的多个位置获取文本,然后组成 shell 的一个命令,或从程序获取输出并将其插入最喜欢的编辑器。因为剪切缓冲区是在不同应用程序之间全局共享的,所以可以把它看成是内容已知“文件”。终端仿真器和其它文本程序会把它看成是一个文本文件;换句话说,文本由换行符定界。
滚动区域显示当前显示在窗口中(突出显示)的文本的位置和数量,与实际保存的文本数量有关。当更多文本被保存(直到最大值)时,突出显示区域的大小会减少。
在滚动区域用指针单击按钮 1 将邻近行移动到显示窗口的顶端。
单击按钮 3 将显示窗口的顶行向下移动到指针位置。
单击按钮 2 将显示移动到与滚动条指针位置相对应的已保存文本中。
和 VT102 窗口不同,Tektronix 窗口中不允许文本复制。它确实允许 使用 Tektronix GIN 方式,而且在该方式下光标会从箭头变为十字形。按任意键将发送该键和十字光标的当前坐标。按按钮 1、2 或 3 会分别返回字母 l、m、r。
如果在指针按钮按下时按 Shift 键,则发送相应的大写字母。为区分指针按钮和键,设置了字符的高位(但这一位通常被删去,除非终端方式是 RAW;请参阅 tty 命令获取详细信息)。
xterm 命令有四个菜单,名称分别 为 mainMenu、vtMenu、fontMenu 和 tekMenu。每一个菜单在按下正确的按键和按钮组合时展开。 大部分菜单都通过水平线分隔而划分为两个部分。菜单顶部 包含可以改变的各种方式。在当前活动的方式的旁边显示复选标记。选择其中一个方式会 切换其状态。菜单底部列出命令条目;选择其中之一将执行显示的功能。
xterm 菜单在窗口中的控制键和指针按钮 1 按下时打开。mainMenu 包含适用 于 VT102 和 Tektronix 视窗的项。在不安全的环境中输入密码或是别的敏感数据时请使用 Secure Keyboard 方式。
菜单命令部分中值得注意的条目 是:Continue、Suspend、Interrupt、Hangup、Terminate 和 Kill,它们分别发送 SIGCONT、SIGTSTP、SIGINT、SIGHUP、SIGTERM 和 SIGKILL 信号到在 xterm 下运行的进程的进程组中(通常就是 shell)。如果用户偶然按下 Ctrl+Z 暂挂了进程,Continue 功能会非常有用。
vtMenu 在 VT102 仿真中设置不同方式,并在 VT102 窗口中 按下控制键和指针按钮 2 时被打开。在该菜单的命令部分,软复位条目会重新设置滚动区域。当某些 程序使滚动区域保持错误设置时(通常是在使用 VMS 或 TOPS-20 时有问题),软复位十分方便。
在 xterm 命令处理完命令行选项后,完全复位条目会立即 清除屏幕,将制表符复位为每 8 列,并将终端方式(比如换行和平滑滚动)重新设置为它们的初始状态。
fontMenu 设置在 VT102 视窗中使用的字体。除了由资源设置的缺省字体 和若干备用字体,菜单还提供“设置字体”转义序列上次指定的字体(请参阅 “控制序列”)和当前选择作为字体名(如果有 PRIMARY 选项)。
tekMenu 在 Tektronix 仿真中设置不同方式,在 Tektronix 窗口中 按下控制键和指针按钮 2 时可将其打开。当前字体大小在菜单的 Modes 部分检入。命令部分的 PAGE 条目会清除 Tektronix 窗口。
X 视窗环境在它们的安全性级别方面有所不同。在 xdm 下运行的 MIT 服务器可以使用 magic cookie 授权模式,该模式可以对很多人提供合理的安全等级。如果服务器只使用基于主机的机制来控制 对服务器的访问(参阅 xhost 命令),而且如果对一个主机启用访问且也允许其他用户在相同的主机上运行客户机,那么很可能有人可以运行使用 X 协议的基本服务的应用程序窥探到您的活动,并有可能 捕获到从键盘输入的所有内容的副本。
这在要输入密码或其它敏感数据时要特别注意。该问题的最佳解决方案是用一种更好的授权机制而不是基于主机的控制,但在 xterm 命令中有一种保护键盘输入的简单机制。
xterm 菜单包含 Secure Keyboard 选项,启用时,能够确保所有的键盘输入仅定向到 xterm 命令(使用 GrabKeyboard 协议请求)。当应用程序提示输入密码 (或其它敏感数据)时,可以用菜单启用 Secure Keyboard,输入数据,然后再次通过使用菜单禁用 Secure Keyboard。
一次只能有一个 X 客户机可以保护键盘,因此当尝试 启用 Secure Keyboard 时,它可能会失败。在这种情况下,会响铃提示。如果 Secure Keyboard 成功启动,前景和背景颜色会交换(就像在“方式”菜单中选择了反转视频条目一样);当退出安全方式时,颜色将再次交换。如果 颜色没有交换,这就十分有可能正在受到欺骗。
如果正在运行的应用程序在询问密码前显示提示符, 最安全的方法就是:在提示符显示之前进入安全方式,而且确保 提示符显示正确(以新的颜色),以将受欺骗的可能性降到最低。也可以再次打开菜单并确保该条目旁边有复选标记显示。
如果在 Secure Keyboard 方式中 xterm 窗口已图标化(或是已取消映射),或者如果启动一个 再生视窗管理器(它在窗口周围摆放标题栏或其它装饰品),则 Secure Keyboard 方式会自动禁用。(这是 X 协议的一个不容易攻破的功能。)当发生上述情况时,前景和背景颜色将会换回原来的颜色而且会响铃警告。
快速连击鼠标中间按钮两次会导致所有同类字符(比如字母、空白、标点)都被选中。因为不同的人对那些应该被选中的内容有不同的偏好 (比如,文件名是否应该全被选中还是只是单独的子名),缺省映射可以通过使用 charClass(类 CharClass)资源来覆盖。
该资源是一系列以逗号分隔的 range:value 对。range 是 在 0 到 127 之间单个数字或 low-high(表示从低到 高),对应于要设置字符的 ASCII 代码。value 是任意的, 虽然缺省表使用在集合中出现的第一个字符的字符数。
缺省表是:
static int charClass[128] = { /* NUL SOH STX ETX EOT ENQ ACK BEL */ 32, 1, 1, 1, 1, 1, 1, 1, /* BS HT NL VT NP CR SO SI */ 1, 32, 1, 1, 1, 1, 1, 1, /* DLE DC1 DC2 DC3 DC4 NAK SYN ETB */ 1, 1, 1, 1, 1, 1, 1, 1, /* CAN EM SUB ESC FS GS RS US */ 1, 1, 1, 1, 1, 1, 1, 1, /* SP ! " # $ % & ' */ 32, 33, 34, 35, 36, 37, 38, 39, /* ( ) * + , - . / */ 40, 41, 42, 43, 44, 45, 46, 47, /* 0 1 2 3 4 5 6 7 */ 48, 48, 48, 48, 48, 48, 48, 48, /* 8 9 : ; < = > ? */ 48, 48, 58, 59, 60, 61, 62, 63, /* @ A B C D E F G */ 64, 48, 48, 48, 48, 48, 48, 48, /* H I J K L M N O */ 48, 48, 48, 48, 48, 48, 48, 48, /* P Q R S T U V W */ 48, 48, 48, 48, 48, 48, 48, 48, /* X Y Z [ \ ] ^ _ */ 48, 48, 48, 91, 92, 93, 94, 48, /* ` a b c d e f g */ 96, 48, 48, 48, 48, 48, 48, 48, /* h i j k l m n o */ 48, 48, 48, 48, 48, 48, 48, 48, /* p q r s t u v w */ 48, 48, 48, 48, 48, 48, 48, 48, /* x y z { | } ~ DEL */ 48, 48, 48, 123, 124, 125, 126, 1};
比如,字符串 33:48,37:48,45-47:48,64:48 表示感叹号、百分号、破折号、句点、斜杠和 & 字符都应该与字符和数字相同对待。这对剪切和粘贴电子邮件地址和文件名很有用。
可以通过更改 vt100 或 tek4014 小 窗口的转换将键(或按键顺序)重新绑定到任意输入字符串。更改事件的转换而不是键和按钮事件并非是预期的 操作,这会导致不可预测的行为。以下操作是为在 vt100 或 tek4014 转换资源中使用而提供的:
bell([Percent]) | 将基本音量提高/降低指定的百分比来提示键盘铃声。 |
ignore() | 忽略该事件但检查特殊指针位置转义序列。 |
insert() | 插入与按下的键相关联的字符或字符串。 |
insert-seven-bit() | 等同于 insert()。 |
insert-eight-bit() | 插入一个与按下的键相关联的 8 位(元)版本的字符或字符串。确切的操作依靠于 eightBitInput 资源的值。 |
insert-selection(SourceName [, ...]) | 插入在选择区或剪切缓冲区找到的由 SourceName 参数指示的 字符串。按给定的顺序检查源(区分大小写)直到找到一个目标。通常使用的选择区包括 PRIMARY、SECONDARY 和 CLIPBOARD。剪切缓冲区通常命名为从 CUT_BUFFER0 到 CUT_BUFFER7 的序列。 |
keymap(Name) | 动态定义一个新的转换表,其资源名是 Name 且后缀是 Keymap(区分 大小写)。名称 None 将恢复原始的转换表。 |
popup-menu(MenuName) | 显示指定的弹出菜单。有效的名称(区分大小写)包括 mainMenu、vtMenu、fontMenu 和 tekMenu。 |
secure() | 切换 Secure Keyboard 方式(在名为『安全性』的一节中有该方式的描述),而且是从 mainMenu 中 securekbd 条目中调用的。 |
select-start() | 在当前指针位置开始文本选择。请参阅标题为『指针用法』的一节以获取如何进行选择的详细信息。 |
select-extend() | 跟踪指针并扩展该选择。仅将其绑定到 Motion 事件。 |
select-end(DestName [, ...]) | 将当前选择的文本放入 DestName 指定的所有选择区或剪切缓冲区。 |
select-cursor-start() | 类似于 select-start,除了它是从当前文本光标位置开始选择。 |
select-cursor-end(DestName [, ...]) | 类似于 select-end,除了它应与 select-cursor-start 一起使用。 |
set-vt-font(d/1/2/3/4/5/6/e/s [,NormalFont [, BoldFont]]) | 设置当前 VT102 视窗使用的字体。第一个自变量为单个字符,它指定要使用的字体:
d 或 D 表示缺省字体 (在 xterm 命令启动时最初使用的字体), 1 到 6 表示 由 font1 到 font6 资源指定的字体, e 或 E 表示 通过转义码设置的普通和粗体字体(或是分别指定为由第二个和第三个操作自变量), s 或 S 表示 由第二个操作自变量指定的字体选择(由程序选择,比如 xfontsel 程序)。 |
start-extend() | 类似于 select-start,除了选择区扩展到当前指针位置。 |
start-cursor-extend() | 类似于 select-extend,除了选择区扩展到当前文本光标位置。 |
string(String) | 插入指定的文本字符串,就好像它是被输入的一样。如果字符串包含 空白或非字母数字字符,则必须使用引号。如果字符串自变量以字符“0x”开头, 则它会解释为一个十六进制字符常量。 |
scroll-back(Count [,Units]) | 回滚文本窗口,以便先前滚动出屏幕顶部的文本可以显示出来。Count 自 变量表示要滚动的 Units(可能 是 page、halfpage、pixel 或 line)的数量。 |
scroll-forw(Count [,Units]) | 滚动类似于 scroll-back,除了它是向另一方向滚动。 |
allow-send-events(On/Off/Toggle) | 设置或切换 allowSendEvents 资源 而且也可以通过 mainMenu 中的 allowsends 条目调用。 |
redraw() | 重绘窗口,也可以通过 mainMenu 中的 redraw 条目调用。 |
send-signal(SigName) | 发送名为 SigName 的信号到xterm 子进程(由 -e 命令行选项指定的 shell 或程序),并可以通过 mainMenu 中 的 suspend、continue、interrupt、hangup、terminate 和 kill 等条目调用。允许的信号名为(不区分大小写): |
quit() | 发送 SIGHUP 到子程序并退出。它也可以通过 mainMenu 中的 quit 条目调用。 |
set-scrollbar(On/Off/Toggle) | 切换 scrollbar 资源,也可以通过 vtMenu 中的 scrollbar 条目调用。 |
set-jumpscroll(On/Off/Toggle) | 切换 jumpscroll 资源,也可以通过 vtMenu 的 jumpscroll 条目调用。 |
set-reverse-video(On/Off/Toggle) | 切换 reverseVideo 资源, 也可以通过 vtMenu 中的 reversevideo 条目调用。 |
set-autowrap(On/Off/Toggle) | 切换长输入行的自动换行,并可通过 vtMenu 中的 autowrap 条目调用。 |
set-reversewrap(On/Off/Toggle) | 切换 reverseWrap 资源, 也可以通过 vtMenu 的 reversewrap 条目调用。 |
set-autolinefeed(On/Off/Toggle) | 切换换行的自动插入方式,并可以通过 vtMenu 中的 autolinefeed 条目调用。 |
set-appcursor(On/Off/Toggle) | 切换 Application Cursor Key 方式的处理,并可以通过 vtMenu 中 的 appcursor 条目调用。 |
set-appkeypad(On/Off/Toggle) | 切换 Application Keypad 方式的处理,并可以通过 vtMenu 中的 appkeypad 条目调用。 |
set-scroll-on-key(On/Off/Toggle) | 切换 scrollKey 资源, 也可以从 vtMenu 中的 scrollkey 条目调用。 |
set-scroll-on-tty-output(On/Off/Toggle) | 切换 scrollTtyOutput 资源, 也可以从 vtMenu 中的 scrollttyoutput 条目调用。 |
set-allow132(On/Off/Toggle) | 切换 c132 资源, 也可以从 vtMenu 中的 allow132 条目调用。 |
set-cursesemul(On/Off/Toggle) | 切换 curses 资源, 也可以从 vtMenu 中的 cursesemul 条目调用。 |
set-visual-bell(On/Off/Toggle) | 切换 visualBell 资源, 也可以通过 vtMenu 中的 visualbell 条目调用。 |
set-marginbell(On/Off/Toggle) | 切换 marginBell 资源, 而且也可以通过 vtMenu 中的 marginbel 条目调用。 |
set-altscreen(On/Off/Toggle) | 在备用屏幕和当前屏幕之间切换。 |
soft-reset() | 重新设置滚动区域,而且也可以从 vtMenu 中的 softreset 条目调用。 |
hard-reset() | 重新设置滚动区域、标记、窗口大小和光标键并清除屏幕。它也可以从 vtMenu 中的 hardreset 条目调用。 |
clear-saved-lines() | 执行 hard-reset(参看前面的条目),而且也清除超出屏幕顶部的已保存行的历史记录。它也可以从 vtMenu 中的 clearsavedlines 条目调用。 |
set-terminal-type(Type) | 按照 Type 字符串,直接输出到 vt 或 tek 窗口。也可以从 vtMenu 中 的 tekmode 条目和 tekMenu 中的 vtmode 条目调用。 |
set-visibility(vt/tek, On/Off/Toggle) | 控制 vt 或 tek 窗口是否可见。它也可以从 vtMenu 中的 tekshow 和 vthide 条目和 tekMenu 中的 vtshow 和 tekhide 条目调用。 |
set-tek-text(large/2/3/small) | 根据自变量,将 Tektronix 视窗中使用的字体设置为 tektextlarge、tektext2、tektext3 和 tektextsmall 资源的值。它也可通过 tekMenu 中与资源同名的条目调用。 |
tek-page() | 清除 Tektronix 窗口,而且也可以通过 tekMenu 中的 tekpage 条目调用。 |
tek-reset() | 复位 Tektronix 窗口,而且也可以通过 tekMenu 中的 tekreset 条目调用。 |
tek-copy() | 将用于生成当前窗口内容的转义码复制到当前目录中一个名称以 COPY 开头的文件。它也可以从 tekMenu 中的 tekcopy 条目调用。 |
visual-bell() | 快速刷新窗口。 |
Tektronix 视窗也具有以下操作:
gin-press(l/L/m/M/r/R) | 发送指示的图像输入代码。 |
在 VT102 视窗中缺省绑定是:
Shift <KeyPress> Prior: scroll-back(1,halfpage) \n\ Shift <KeyPress> Next: scroll-forw(1,halfpage) \n\ Shift <KeyPress> Select: select-cursor-start \ select-cursor-end(PRIMARY, CUT_BUFFER0) \n\ Shift <KeyPress> Insert: insert-selection(PRIMARY, CUT_BUFFER0) \n\ ~Meta<KeyPress>: insert-seven-bit \n\ Meta<KeyPress>: insert-eight-bit \n\ !Ctrl <Btn1Down>: popup-menu(mainMenu) \n\ !Lock Ctrl <Btn1Down>: popup-menu(mainMenu) \n\ ~Meta <Btn1Down>: select-start \n\ ~Meta <Btn1Motion>: select-extend \n\ !Ctrl <Btn2Down>: popup-menu(vtMenu) \n\ !Lock Ctrl <Btn2Down>: popup-menu(vtMenu) \n\ ~Ctrl ~Meta <Btn2Down>: ignore \n\ ~Ctrl ~Meta <Btn2Up>: insert-selection(PRIMARY, CUT_BUFFER0) \n\ !Ctrl <Btn3Down>: popup-menu(fontMenu) \n\ !Lock Ctrl <Btn3Down>: popup-menu(fontMenu) \n\ ~Ctrl ~Meta <Btn3Down>: start-extend \n\ ~Meta <Btn3Motion>: select-extend \n\ <BtnUp>: select-end(PRIMARY, CUT_BUFFER0) \n\ <BtnDown>: bell(0)
在 Tektronix 视窗中缺省绑定是:
~Meta<KeyPress>: insert-seven-bit \n\ Meta<KeyPress>: insert-eight-bit \n\ !Ctrl <Btn1Down>: popup-menu(mainMenu) \n\ !Lock Ctrl <Btn1Down>: popup-menu(mainMenu) \n\ !Ctrl <Btn2Down>: popup-menu(tekMenu) \n\ !Lock Ctrl <Btn2Down>: popup-menu(tekMenu) \n\ Shift ~Meta<Btn1Down>: gin-press(L) \n\ ~Meta<Btn1Down>: gin-press(l) \n\ Shift ~Meta<Btn2Down>: gin-press(M) \n\ ~Meta<Btn2Down>: gin-press(m) \n\ Shift ~Meta<Btn3Down>: gin-press(R) \n\ ~Meta<Btn3Down>: gin-press(r)
以下是如何运用键映射操作来添加特殊键来输入 通常输入的工作:
*VT100.Translations: #override <Key>F13: keymap(dbx) *VT100.dbxKeymap.translations: \ <Key>F14: keymap(None) \n\ <Key>F17: string("next") string(0x0d) \n\ <Key>F18: string("step") string(0x0d) \n\ <Key>F19: string("continue") string(0x0d) \n\ <Key>F20: string("print ") insert-selection(PRIMARY,CUT_BUFFER0)
xterm 命令为创建的大小窗口设置适当的 TERM 和 TERMCAP 环境变量。它也使用和 设置 DISPLAY 环境变量来指定使用哪个位图显示终端。WINDOWID 环境 变量设置为 xterm 窗口的 X-Windows 标识号。
有一些系统上不能执行大量的粘贴。这不是 xterm 命令的程序错误;这是那些系统的伪终端驱动程序 的程序错误。xterm 命令以 pty 能接受数据的速度将大 容量粘贴传送给 pty,但有些 pty 驱动程序并没有返回能判断写操作是否已经成功 的足够的信息。
在 xterm 命令启动后很多选项不能重新设置。
只支持固定宽度、字符单元字体。
本节列出 xterm 命令可用的控制序列。
以下信息显示如何解释本节中的按键顺序。
c | 文字符号 c。 |
C | 单个(需要的)字符。 |
Ps | 单个(通常是可选的)数字参数,由一个或多个数字组成。 |
Pm | 由任意多个单个数字参数组成的多数字参数,由 ;(分号)字符分隔。 |
Pt | 由可打印的字符组成的文本参数。 |
这些控制序列中大部分是标准 VT102 控制序列,但这里也有一些来自稍后 DEC VT 终端的序列。不支持的主要的 VT102 功能特征是平滑滚动、双倍大小字符、闪烁字符和 VT52 方式。
有一些附加的控制序列提供 xterm- 从属函数,例如滚动条或窗口大小。其中功能由 DEC 或 ISO 6429 指定, 分配给它的代码在圆括号里给出。指定字符集的转义码由 ISO 2022 指定;请参阅有关文档获取字符集的论述。
控制序列 | 描述 |
---|---|
BEL | 响铃(Ctrl+G) |
BS | 回退(Ctrl+H) |
TAB | 水平制表符(HT)(Ctrl+l) |
LF | 换行或新起一行(NL)(Ctrl+J) |
VT | 垂直制表符(Ctrl+K),与 LF 相同 |
FF | 换页或新起一页(NP)(Ctrl+L),与 LF 相同 |
CR | 回车符(Ctrl+M) |
SO | 移出(Ctrl+N)-> 切换至备用字符集:调用 G1 字符集。 |
SI | 移入(Ctrl+O)-> 切换至标准字符集:调用 G0 字符集(缺省值)。 |
ESC # 8 | DEC 屏幕测试(DCECALN) |
ESC ( C | 指定 G0 字符集(ISO 2022)
|
ESC ) C | 指定 G1 字符集(ISO 2022)
|
ESC * C | 指定 G2 字符集(ISO 2022)
|
ESC + C | 指定 G3 字符集(ISO 2022)
|
ESC 7 | 保存光标(DECSC) |
ESC 8 | 恢复光标(DECRC) |
ESC = | 应用程序小键盘(DECPAM) |
ESC > | 正常小键盘(DECNM) |
ESC D | 索引(IND) |
ESC E | 下一行(NEL) |
ESC H | 制表符设置(HTS) |
ESC M | 逆向索引(RI) |
ESC N | G2 字符集的单精度 2 位选择(SS2):只影响下一个字符。 |
ESC P | G3 字符集的单精度 2 位选择(SS2):只影响下一个字符。 |
ESC O Pt ESC \ | 设备控制字符串(DCS)。xterm 没有实现 DCS 功能;Pt 被忽略。Pt 不需要是可打印字符。 |
ESC Z | 返回终端标识符(DECID)。ESC [ c (DA) 的废弃的格式 |
ESC [ Ps @ | 插入多个字符中的 Ps(空白)字符(缺省值=1)(ICH) |
ESC [ Ps A | 光标向上 Ps 倍数(缺省值=1)(CUU) |
ESC [ Ps B | 光标向下 Ps 倍数(缺省值=1)(CUD) |
ESC [ Ps C | 光标向前 Ps 倍数(缺省值=1)(CUF) |
ESC [ Ps D | 光标向后 Ps 倍数(缺省值=1)(CUB) |
ESC [ Ps ; Ps H | 光标位置 [行;列](缺省值=1)(CUP) |
ESC [ Ps J | 清除显示内容(ED)
|
ESC [ Ps K | 擦除行(EL)
|
ESC [ Ps L | 插入 Ps 行(缺省值=1)(IL) |
ESC [ Ps M | 删除 Ps 行(缺省值=1)(DL) |
ESC [ Ps P | 删除 Ps 字符(缺省值=1)(DCH) |
ESC [ Ps ; Ps ; Ps ; Ps ; Ps T | 初始化高亮度鼠标轨迹。参数为 [Func;Startx;Starty;FirstRow;LastRow]。请参阅鼠标跟踪。 |
ESC [ Ps c | SendDevice 属性(DA)删除 Ps 字符(缺省值=1)(DCH)
|
ESC [ Ps ; Ps f | 水平和垂直位置 [行;列](缺省值是 [1;1])(HVP) |
ESC [ Ps g | 制表符清除(TBC)
|
ESC [ Pm h | 设置方式(SM)
|
ESC [ Pm l | 复位方式(RM)
|
ESC [ Pm m | 字符属性(SGR)
|
ESC [ Ps n | 设备状态报告(DSR)
|
ESC [ Ps ; Ps r | 设置滚动区域 [顶部;底部](缺省值=窗口整个大小)(DECSTBM) |
ESC [ Ps x | 请求终端参数(DECREQTPARM) |
ESC [ ? Pm h | DE 专用方式(DECSET)
|
ESC [ ? Pm l | DEC 专用方式复位(DECRST)
|
ESC [ ? Pm r | 恢复 DEC 专用方式值。该先前保存的 Ps 值被恢复。Ps 值和 DECSET 相同。 |
ESC [ ? Pm s | 保存 DEC 专用方式值。Ps 值和 DECSET 相同。 |
ESC ]? Ps ; Pt BEL | 设置文本参数
|
ESC Pt ESC \ | 专用消息(PM)。xterm 未实现 PM 功能;Pt 不需要是可打印字符。 |
ESC _ Pt ESC \ | 应用程序命令(APC)。专用消息(PM)。xterm 未实现 APC 功能;Pt 被忽略。Pt 不需要是可打印字符。 |
ESC c | 完全复位(RIS) |
ESC n | 选择 G2 字符集(LS2) |
ESC o | 选择 G3 字符集(LS3) |
ESC l | 把 G3 字符集作为 GR(LS3R)调用。对 xterm 没有 可见的效果。 |
ESC } | 把 G2 字符集作为 GR(LS2R)调用。对 xterm 没有 可见的效果。 |
ESC | 把 G1 字符集作为 GR(LS1R)调用。对 xterm 没有 可见的效果。 |
在 AIX V4中的 DEC.TI 文件 中的 xterm 终端描述可通过使用 SGR 属性来提供下划线方式。该 SMUL 和 RMUL 属性当前并没有在 AIX V4的 XTERM 终端描述中定义。使用名为 SGR 的更为通用的功能。
tput sgr x y
其中 x 是 1 或 0, 分别用于打开或关闭突出显示方式,y 是 1 或 0,分别用于打开或关闭下划线方式。请参阅文章“terminfo 文件格式”以获得有关 SGR 能力的更多信息。
tput sgr 0 1 关闭标准输出;打开下划线 tput sgr 0 0 关闭标准输出;关闭下划线 tput sgr 1 1 打开标准输出;打开下划线 tput sgr 1 0 打开标准输出;关闭下划线
VT 小窗口可以设置为在按钮按下时 发送鼠标位置和其它信息。该方式典型情况下用于编辑器和其它希望使用鼠标的全屏方式应用程序。
有三种互斥方式,每种都通过 DECSET(或 DECRST)转义序列中不同的参数来启用(或禁用)。xterm 命令生成的所有鼠标跟踪转义序列参数编码 成单个字符的数字参数,如:value+040。该屏幕坐标系基于 1。
例如 ! 是 1。该屏幕坐标系基于 1。
X10 兼容性方式在按钮按下时发送一个转义序列, 对位置和按下的鼠标按钮进行编码。该方式是通过指定参数 DECSET 为 9 启用的。在按钮按下 时,xterm 命令发送以下“6 个字符”。Cb 是按钮 1。Cx 和 Cy 是按钮按下时鼠标的 x 和 y 坐标。
ESC [ M CbCxCy
正常轨迹方式发送在按钮按下和松开的时候都会发送一个转义序列。修饰符信息也被发送。通过指定参数 DECSET 为 1000 可以启用该方式。在按钮按下或释放时,xterm 命令发送以下“按键顺序”:
ESC [ M CbCxCy
Cb 的低两位编码按钮信息:0=MB1 按下,1=MB2 按下,2=MB3 按下, 3=释放。高位编码在按钮按下时哪些修改键关闭并将它们加在一起。4=Shift, 8=Meta, 16=Control。Cx 和 Cy 是鼠标事件的 x 和 y 坐标。左上角是(1,1)。
鼠标高亮度跟踪向程序通知按钮按下,从程序中得到了一定范围的行,并在该范围内突出显示鼠标覆盖的区域直到按钮释放,然后向程序发送释放时的坐标。该方式是通过指定参数 DECSET 为 1001 启用的。
ESC [ Ps ; Ps ; Ps ; Ps ; T
参数为 Func、Startx、Starty、FirstRow 和LastRow。Func 参数是非零值,用来初始化高亮度跟踪,0(零)则表示放弃。Startx 和 Starty 参数给出突出显示区域的开始 x 和 y 位置。结束位置跟踪鼠标轨迹,但不会 在行 FirstRow 之上而且 始终 LastRow 行之上。(屏幕顶端是行 1。) 当按钮释放时,xterm 命令以两种方法之一报告结束位置:如果开始和结束 坐标都是有效的文本位置,xterm 命令按以下方式报告“结束位置”:
ESC [ t CxCy
如果任一个坐标超过了行尾,xterm 命令按如下方式报告“结束位置”:
ESC [ T CxCyCxCyCxCy
参数为 Startx、Starty、Endx、Endy、Mousex 和 Mousey。Startx、Starty、Endx 和 Endy 参数 给出该区域的开始和结束字符位置。Mousex 和 Mousey 参数 给出鼠标在按钮弹起时的位置,它不超过一个字符。
大多数序列是标准 Tektronix 4014 控制序列。未提供的主要功能是 直写和散焦方式。本文档没有描述在各种不同 Tektronix 绘图方式中用的命令,但描述了开关 方式的命令。
aixterm 命令、resize 命令、tset 命令、vi 或 vedit 命令。