当前位置:Linux教程 - Linux - X-windows 系统使用指南(10)

X-windows 系统使用指南(10)



         第10章 使用X的应用程式

    10.1 文字编辑器 - Xedit
    10.2 读取指南页 (Manual Pages) - xman
    10.3 邮件/讯息处理系统 - xmh
    10.4 结论/摘要

    第10章 使用X的应用程式

    本章将介绍一些包含在 core 版本内的公用程式, 它们的主要功能和视窗
    系统并无密切关系, 但使用它们却可提供一个相当不错的使用者介面 :

    . Xedit - 一个以视窗为基础的 (window-based) 一般目的文字编辑器.
    . Xman - 一个指南页 (manpage) 或系统文件的浏览工具.
    . Xmh - 一个 mh 邮件处理程式的视窗前端 (front-end) .



    10.1 文字编辑器 - Xedit

    Xedit 是一个非常简单而具有视窗介面的文字编辑器. 藉著对 Xedit 所
    显示的选择盒碰触按钮, 你可以完成某些操作, 但透过使用键盘你可以执行的
    更多, 特别是控制字元. 在这个程式内大多数以键盘为基础的功能由一个标准
    软体片段提供 -- 假如你喜欢也可以视为一个建□区块 \"building block\" --
    叫做一个文字小工具 (text widget). (有关小工具 (Widget) 在 \"资源
    (Resources)\" 那一章 (第15章)中我们将谈得更多). 因为这是一个很普通的
    结构, 且你将在其他地方遇到相同的编辑功能, 我们在随後的几节将详细描述
    它的功能.


    10.1.1 启动与结束程式

    假如你想编辑一个名叫 foobar的 档案, 在 xterm 视窗键入命令 :

    xedit foobar &

    (假如你不想编辑已存在的档案, 只要键入 \"xedit &\")

    xedit 启动与显示它的视窗, 如图 10 - 1 :

    ┌————————————————┐
    │ p108 fig 10 - 1 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 1 xedit 文字编辑器 │
    └————————————————┘

    视窗被分成三部分 :

    . 上面是命令选单, 具有标著 Quit, Save 等的命令盒.

    . 中间部分是讯息视窗, xedit 在里面显示错误讯息与状态, 你也能把它
    当作一个抓取区 (scratch area) 来使用, 可在里面键入一段你想剪贴
    到其他地方的文字.

    . 下面较大的部分是编辑视窗, 它显示你正在编辑或建立的本文.

    当你想结束程式时, 在 Quit 盒上碰触左按钮, 假如你做了一些改变但未
    储存, 则 xedit会在讯息视窗内印出警告讯息 :

    Unsaved changes. Save them, or press Quit again.


    10.1.2 插入文字

    首先确定指标在编辑视窗内, 然後键入你要的文字 (键盘上任意的列印字
    元),在你键入时,被直接地插入. 当你键入时, 你将会注意到新插入的文字是不
    断地推送一个在它前面的一个小脱字符 (^) 游标 : 这个游标是插入点
    (insertion point) 或简称为点 (point). 任何你键入的或贴入(paste-in)
    的文字都将在这个点的位置被插入. 插入点总是位於两个字元间, 而不在一个
    字元上面 (就像一个正常终端机游标的状况).

    自动 \"列卷绕\" (Line-Wrapping) -- xedit 的 \"段落\" (paragraphs)

    当你在接近一列的尾端插入文字, 假如你键入的字太长以致无法适合目前
    这一列时, xedit 将自动移至下一列. 假如接著剪短该字使得可以适合它原来
    的列,它将再跳回上一列.

    这个作用与 xedit 的段落定义息息相关 : 一个段落是被新列字元
    (newline character)终结的本文. (实际上它意味著连续键入文字而无需插入
    新列字元) edit 列卷绕仅作用於一个段落内, 且能正确地处理特殊状况, 例如 :
    在移动一个单字 (word)到这列时造成这列必须卷绕到下一列的状况等等.

    注意 1 : 这个段落的定义实际上就是被各种其他 Unix 程式视为一列的定
    义, 若你使用 xedit 编辑一个正常的档案, xedit会将读入的每一列
    视为一个段落处理.

    注意 2 : 显示器没有明显的标示出萤幕上的一列在尾端有一个新列字元 (无法
    凭肉眼直接辨识) , 亦即xedit 可能视它为一个列尾或一个段落.

    注意 3 : 以 xedit 产生的档案, 若用其他程式查看内容时, 可能看到具有非
    常长的一列.

    译注:这种方式类似於 PC 上的 Wordstar 文书编辑器。


    特殊插入操作

    下面有一些插入新列的特殊命令, 各种命令稍为有些不同:

    插入一个新列, 且插入点移至新列 : 按 RETURN. 便可以插入一个新列, 事
    实上就像插入任何列印字元一样. 且假如你不靠 xedit 的列卷绕,
    这是移至新列的正常方法.

    插入新列, 且对齐 : 按 LINEFEED键插入一新列并移动插入点到下一列,
    但任何你键入的列印文字将与上一列的文字对齐. (对键入表格等很有
    用).

    插入一新列, 但不移动插入点 : 按 ctl-O. 可以插入一个新列, 但点仍
    留在同一列. (当你想分开一列并加文字到被分成二列中的第一列尾
    端时使用)


    10.1.3 剪 (cutting) 与贴 (pasting)

    就像在 xterm 中一样的, 你可以选择并 \"剪\" 出一段文字, 但是有一个
    讨厌的差异 : 当选择字或列时, 你必须迅速碰触二次或三次按钮 - 你不能在
    按钮按下或松开时暂停.

    在插入点的地方贴入文字时, 你可以像以前一样的碰触中间按钮, 或按
    meta-Y键.


    10.1.4 移动插入点

    移动插入点最简单的方法是使用滑鼠 : 移动视窗文字游标 (在图 5 - 2
    所看到的垂直棒)到任何你想要的地方, 并碰触滑鼠左按钮. 插入点的 ^ 标志
    即跳到新位置.

    但通常使用键盘移动插入点也很简单 - 当你正在编辑时, 它会打断你的
    节奏, 因为必须拿起滑鼠, 移动它, 最後再次将你的手移回键盘. xedit 提供
    一次移动一个字元、单字、列或页的方式移动插入点 :

    一次一字元移动插入点

    这是移动点的最基本型式 :

    向前一个字元 : 按 ctl-f 或 RIGHTARROW

    向後一个字元 : 按 ctl-b 或 LEFTARROW

    向上一个字元 : 按 ctl-p 或 UPARROW

    向下一个字元 : 按 ctl-n 或 DOWNARROW

    假如你接近一列的开头, 按几次 ctl-b 後,你将回到前一列. 按几次
    ctl-f 後可回复至原位. 假如你是在一页的最上面 (最下面) 一列, 类似的
    效果会发生 : 移至前 (或下)一列, 将引起文字卷动使你移至的列能被看得
    见.

    一次移动一个单字、一列或一个段落

    这些是编辑文字时所须的自然移动功能.

    向前一个单字 : 按 meta-F 或 meta-f

    向後一个单字 : 按 meta-B 或 meta-b

    移至列尾 : 按 ctl-E

    移到列的开头 : 按 ctl-A

    向前一个段落 : 按 meta-]

    向後一个段落 : 按 meta-[

    你可以看到一个规律开始浮现 : ctl-char 对单一字元操作. 而 meta-char
    对单字作相同的事. e.g. ctl-F 向前一个字元, meta-F 向前一个字.


    大量移动 - 以页与档案为单位

    假如你想获得较大的跳越, 就像在 xterm 里面一样, 你可以使用卷动棒
    . 然而, 卷动文字并不会移动插入点 : 当你键入或清除任何内容时, 文字将
    自动地卷回插入点, 让你可以看到你作了甚麽.

    如果你想卷动显示内容且移动插入点, 使用 :

    往前一页 : 按 ctl-V

    往後一页 : 按 meta-V

    到档案的开头 : 按 meta->

    到档案的尾端 : 按 meta-<


    10.1.5 移除不想要的文字 - 删除 (Deleting) 或 杀掉 (Killing)

    有两种移除文字的技巧 - 删除只将文字移除, 杀掉则除了移除文字外,
    并将文字储存至 \"剪缓冲区\" (cut buffer), 以便稍後你可以取回. 杀掉命令
    仅对较大单位的文字作用 (最小单位为单字) - 因为假如你删除一个字元, 它
    就像没有杀掉它一样很容易再打入.

    在下面的叙述, \"下一个\" (next) 意思是正好在插入点之後, \"前一个\"
    (previous) 意思是正好在插入点之前.

    删除文字

    删除前一个字元 : 按 DELETE 或 BACKSPACE 或 CTL-H.

    删除下一个字元 : 按 CTL-D.

    删除下一个单字 : 按 meta-d.

    删除前一个单字 : 按 meta-h, 或 meta-DELETE 或 meta-BACKSPACE,
    不用 SHIFT 键.

    注意 : meta-h 与 meta-H 不同.

    假如你在一列的开头按下 DELETE 键, 它将删除前一列的尾端的新列字
    元, 而将两列合并成一列.

    杀掉文字

    杀掉下一个单字 : 按 meta-D

    杀掉前一个单字 : 按 meta-H 或 shift-meta-DELETE shift-meta-BACKSPACE.

    从游标位置杀到列尾 : 按 ctl-K

    从游标位置杀到段尾 : 按 meta-k

    杀掉目前选定的文字区块 : 按 ctl-W

    救回杀掉的文字; 拷贝与移动文字

    只要你曾经 kill 某些文字, 你就能按 ctl-Y 救回它, 最近被杀掉的文
    字在插入点的地方被插入. 但有几点须注意 :

    . 只有最近被杀掉的文字可以被救回 - 你无法将一连串被杀掉的文字取
    回.

    . 救回的文字是被插入到目前插入点的位置 - 不是该段文字原先被移除
    的地方.

    . 若是需要的话你可以救回相同的文字许多次, 亦即按 ctrl-Y 并不影响
    缓冲区之内容.

    基於\"杀掉\"动作的原理, 你可以用它来移动或拷贝文字区域.

    移动文字 : 先 kill 它, 再将点移动到你想重新放置的地方, 最後
    un-kill.

    拷贝文字 : 先 kill 它并 un-kill 它, 使拷贝的来源不变; 再将
    点移动到你想拷贝的地方, 最後 un-kill.


    10.1.6 取消改变 (Undoing Changes)

    假如你作了某些改变 - 杀掉或删除或键入或贴入文字 - 但稍後发现并不
    是想要的, 你可以复旧 (undo) 它. 在 undo 盒里碰触左键 : 取消最近的改变
    . undo本身也是一个改变, 所以假如你再次碰触 undo, 它将取消前一个 undo
    的作用; 你可以永远地像这样一直切换下去.

    undo 仅对最近的改变有作用. 假如你想更往回追溯, 你可以利用 more 盒
    连续地 undo 更前面的改变.


    10.1.7 使用档案

    前面曾提到在启动程式时你可以指定欲编辑的档案,事实上当程式执行时
    , 你也能抓取档案. 为达到这个目的你将会使用介於 load 与 undo间的文字
    盒,我们称为\"档名盒\".

    储存文字到一个档案 : 在 save 盒上碰触左按钮; xedit 会将编辑视窗内
    的文字存到档名为档名盒内档名的档案; 若没有名称, xedit会在讯息
    窗内发出

    save : no filename specified -- noting saved

    因此在你再次在 save 上碰触左按钮之前你必须将指标移到档名盒并
    键入档名. 当它已经储存好档案 xedit 会发出确认讯息.

    编辑一个不同档案 : 在档名盒键入档名, 并在 load 上碰触左按钮. 若
    它无法取用档案, xedit 会发出错误讯息.

    插入一个档案到目前的本文 : 按下 meta-I : xedit 突现一个小视窗
    (图 10 - 2). 在上端的文字盒, 键入你想插入的档名, 并在 DoIt
    上碰触左按钮. 该档案的内容即插入目前的插入点位置.

    ┌——————————————————┐
    │ p113 fig 10 - 2 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 2 xedit 的插入档案选择视窗 │
    └——————————————————┘

    注 : 当你在档名盒内键入文字时, 且文字盒在 \"插入档案\" (INSERT FILE)视
    窗, 你可以使用我们曾经描述过的所有键盘基础命令. 事实上, 你不仅能打字
    , 也可以剪贴它们.

    注意 : 当你键入档名时, 不须用 RETURN 结尾 - xedit 会将 RETURN 视为档
    名的一部分, 而造成混淆.

    10.1.8 搜寻指定的文字字串

    假如你想找出一个指定字串在你编辑本文中出现的地方 :

    1. 在我们称为搜寻字串盒 (searchstring box)的里面, 键入字串於
    Search >> 的右方.

    2. 在 Search >> 上碰触左按钮 : 插入点便会移至本文中下一个出现该
    字串的地方.

    搜寻是由插入点开始,并且 xedit 预设的搜寻方向是向前, 而不往後搜寻. 假如
    你要从插入点往回搜寻, 你可以在 << 上碰触左按钮.

    注意 : 当搜寻字串盒内没有文字时, 假如你在 Search >> 或 << 上碰触按钮,
    xedit 会将最近在你机器上被任何应用程式所选择的文字区块的片段拷
    贝到盒内, 并搜寻它. 假如你不预期会如此, 你可能会感到非常惊讶.


    10.1.9 取代一个字串为另一个

    假如你想将出现许多次的一个字串 (旧) 置换成为另一个字串 (新) :

    1. 先搜寻出本文中第一次出现欲取代字串的地方, 如前一小节所诉述.

    2. 在 all 盒右方的取代字串盒内键入新字串.

    3. 在 replace 上碰触左按钮 : 旧字串即被取代成新字串, 且插入点移
    到下一个出现旧字串的地方.

    4. 假如你也要取代它, 再次在 replace 上碰触, 否则 ...

    5. ... 假如你不想取代这个, 但想改变它後面的, 在 search >> 上碰触
    按钮直到你要改变的地方, 即可以再次取代它.

    在你往回移动档案时你无法执行取代, 换言之你无法用简单的方法取代在
    插入点之前的字串.

    注意 : 假如你目前不在旧字串出现的位置而你试图取代, xedit 会发出下列
    讯息 :

    ReplaceOne : nothing replaced

    但是 replace 本身会完成一个搜寻, 所以你可以继续在 replace 上
    碰触按钮, 再次执行代换.

    取代每个出现的字串

    假如你想将出现的每个旧字串取代成新字串, 在 all 上碰触按钮.

    注意 : 使用 all 时所有出现的旧字串均会被取代, 不只是从点往前而已, 而
    是整个档案.


    10.1.10 杂项功能

    重绘本文显示 : 使用时机例如当视窗内变得混杂扭曲, 按 ctrl-L

    向前卷动一列 : 按 ctrl-Z

    往回卷动一列 : 按 meta-Z

    跳至指定的行数 : 在讯息视窗内, 键入你要跳往的行数, 用滑鼠选择你
    正在打的本文, 并在 jump 上碰触左按钮, 插入点便会跳至指定列
    的开头. (假如在萤幕上有应用程式的文字片段含有你要指定的列数
    数字, 你可以利用它 - 而不必依赖 xedit 编辑讯息视窗)

    到此我们已经完成对 xedit 的描述, 下一节将转移到另一个应用程式,
    我们将会看到类似的使用者操作介面.



    10.2 读取指南页 (Manual Pages) - xman

    xman 让你浏览系统上的 Unix 指南页, 从一系列选单中选出你要的项目.

    欲启动程式时,在一个 xterm 视窗中键入命令 \"xman &\" : xman 启动并
    显示它的主功能选择项视窗, 如图 10 - 3. 下面的小节将详细描述这些选择项.

    ┌—————————————————┐
    │ p115 fig 10 - 3 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 3 xman 的主选择项视窗 │
    └—————————————————┘

    10.2.1 xman 本身的线上求助 (on-line help) 功能

    xman 有它自己的内建求助选择项. 欲使用它, 在选择视窗内的 help 上
    碰触按钮.xman 产生一个 \"Xman Help\" 视窗, 如图 10 - 4. 你可以使用卷
    动棒与滑鼠卷动求助本文. 在求助本文视窗内操作方式如下:
    向前移动本文 : 按 f, 或碰触左按钮, 即向前移动一页.

    往回移动本文 : 按 b, 或碰触右按钮, 即往回移动一页.

    ┌—————————————————┐
    │ p116 fig 10 - 4 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 4 xman 求助视窗 │
    └—————————————————┘

    注意 : 按 b, 或碰触右按钮, 可能无法正确地往回移动一页.

    求助视窗内的其他选择项

    移动指标到求助视窗上端的边缘时. 图 10 - 5 的选单突现出来. 其中可
    使用的选项有 :

    Remove Help (移开求助) : 移开这个求助视窗, 但保持其他 xman 视窗
    的原样. (在我们的情况是仍得到主选择视窗)

    Open New Manpage (开启新指南页) : 与主选择视窗的 Manual Page 盒
    相同, 描述於後.   

    Quit : 结束整个程式 (停止).

    欲选择某一选项须移动指标到该选单区并碰触左按钮; 假如你甚麽都不想选
    , 只要将指标移出选单即可.

    ┌——————————————————┐
    │ p117 fig 10 - 5 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 5 xman 求助与指南页视窗选单│
    └——————————————————┘

    注意 : 在任何时刻, 只要指标进入顶端边缘区, xman 就会突现它的选单. 假如
    你不是为了这个目的而意外地横过边缘, 这可能会造成困扰.


    10.2.2 如何阅读一个指南页

    在主选择视窗的 Manual Page 碰触按钮 : xman 产生一个指南页视窗,
    视窗开始时会显示与前面求助视窗相同的文字.

    由此出发, 依照下列三步骤阅读指南页 :

    1. 选择你要看的指南页的特定章节 (section). (section 是参考 unix
    指南页的标准分法. 亦即, section no. 1 包含使用者命令,
    section no. 2 包含系统呼叫)

    2. 视窗会显示你所选择章节的目录, 从目录中选择进入点.

    3. 阅读显示的指南页.

    选择指南书 (Manual) 的章节

    当 man启动时, 它预先设定为选择指南书的 section 1. 假如这是你所要
    的, 你可以省略下列步骤的程序. 否则需指定一个 section :

    1. 在指南页视窗内, 移动指标到顶端边缘. 我们将得到一个与在指南页
    里相同的突现选单,不过现在所有的选项都可使用.

    2. 在 Change Section 项目上碰触按钮 : 选单被一系列的指南书章节名
    称的列表取代. (如图 10 - 6)

    ┌—————————————————┐
    │ p117 fig 10 - 6 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 6 xman 的指南书章节选单 │
    └—————————————————┘

    3. 在你要的章节上碰触按钮 : xman 在指南页视窗内显示进入点的目录
    (如图 10 - 7).

    ┌—————————————————┐
    │ p118 fig 10 - 7 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 7 xman 的指南页进入点目录│
    └—————————————————┘

    显示目录和选择指南页

    假如你依照上面的描述明白地指定一个指南页章节, xman便会显示一个
    指南页目录.否则, 从顶端边缘突现出选单, 并在 Display Directory 上碰触
    按钮, 你会得到像上面一样的指南页目录.

    从目录中选择一个指南页 : 只要在你要的名称上碰触按钮, xman 即在视
    窗内显示指南页 (图 10 - 8). (假如目录列表太长以致视窗无法一次
    显示, 它旁边会有卷动棒. 假如你要的名称看不到, 则必须先将它卷动
    出现後才可以选择你要的名称)

    ┌———————————————————┐
    │ p119 fig 10 - 8 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 8 显示一个指南页的 xman 视窗 │
    └———————————————————┘

    察看一个指南页

    只要指南页在视窗内, 你有许多选择 :

    卷动指南页本文 : 卷动指南页本文就像卷动求助本文一样, 亦即,
    按 f, 或碰触左按钮, 即可向前移动, 按 b, 或碰触右按钮, 则可
    往回移动.

    本文/目录间之切换 : 在指南页视窗碰触中间按钮, 本文即被切换成目
    录列表. (在目录内碰触按钮, 则回到上一个指南页本文显示).

    搜寻一个指定的指南页 :

    1. 从顶端边缘突现出选单并选择 Search. xman 突现出一个搜寻视窗
    (图 10 - 9).

    2. 在顶端的本文盒内, 键入你想要的指南页名称 (不用任何 section
    接尾词, 例如你只要键入 diff, 不用键入 diff(1) 或 diff.1)

    3. 在 Manual Page 上碰触按钮,xman 便会显示你所要的指南页. (假
    如它找不到, 它会在指南页的视窗顶端边印出一个讯息)

    注意 : 你键入的名称必须完全 (di 不能代表 diff), 名称的大小写也必须配
    合 (xaddhost 不等於 XAddHost).

    ┌—————————————————┐
    │ p120 fig 10 - 9 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 9 xman 搜寻视窗 │
    └—————————————————┘

    许多项目一起显示

    在任何时刻, 你都可以视需要开启额外的 xman 视窗, 只需从顶端边缘突
    现出选单并选择 Open New Manpage 开启一个指南页视窗, 然後选择 Help 开
    启一个求助视窗.

    只要你喜欢你可以开启许多不同的 xman 视窗, 且对视窗管理器来说每一
    个都可以被独立地管理, 例如 : 你可以将某些重定大小, 其它的表徵图化等等.
    为了清楚起见, 主选择视窗、求助视窗及指南页视窗的表徵图均不同 (图 10 - 10
    a, b, c). (表徵图内的 \"U.P.M.\" 代表 \"Unix Programmer\"s Manual\")

    ┌—————————————————┐
    │ p120 fig 10 - 10 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 10 xman 的三个不同表徵图 │
    └—————————————————┘

    在任何一个 xman 视窗, 选择 Show Both Screen, 你可以同时显示目录
    及指南页,视窗分成上下两部分, 上面显示目录, 下面显示指南页 (图 10 - 11)
    . (当你如此做时, 顶端的边缘变薄 : Display Directory 与 Display 
    Manual Page 选择项变成灰色 -- 表示它们目前不可选用, 且选单项目
    Show Both Screen 变成 Show One Screen).

    ┌——————————————————————┐
    │ p121 fig 10 - 11 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 11 同时显示目录与指南页的 xman 视窗│
    └——————————————————————┘

    如有需要, 你可以改变视窗中两个分框 (panes) 的相对大小, 注意接近分
    隔框线的右手边有一个小的黑方形叫做把手 (柄) (grip)

    1. 将指标指向把手.

    2. 按下任一滑鼠按钮, 并保持按著.

    3. .. 拖拽分隔线至你要的地方.

    4. 放开按钮,两个方框即被适当地重划.

    注意 : 我们会在不同的X应用看到许多这种把手, 但大部份的情况均无法让你
    拉动它以重调与相邻视窗的比例. 例如 : 假如你试图拉 xman 顶端
    边缘与本文或目录视窗分隔线上的把手, 它不会有任何反应.



    10.3 邮件/讯息处理系统 - xmh

    xmh 是一个架在 mh 邮件/讯息处理系统之上的X介面. 当你启动它时, xmh
    会建立一个像图 10 - 12 的视窗. 程式的视窗相关画面如编辑本文, 与管理视
    窗方框,均与 xedit 及 xman十分类似, 事实上是由相同的内部结构所提供的.
    正因为如此, 且由於大多数描述是与程式的邮件功能有关而较少与X有关, 我
    们不进一步讨论. 假如你想知道如何使用程式, 指南页拥有一个简单但内容丰
    富的描述.

    ┌—————————————————┐
    │ p123 fig 10 - 12 │
    │ │
    │ │
    │ │
    │ │
    │ 图 10 - 12 xmh 邮件处理视窗 │
    └—————————————————┘

    10.4 结论/摘要

    在本章中你已经开始看到某些X应用程式在使用者介面上一致性的面貌,
    例如:卷动棒的操作, 和一般的本文编辑功能. 这里只归结出包含在 core
    发行版本中的一般使用者程式,下一章探讨一些示□程式, 然後我们便进入本
    书第三部分,探讨如何订制一个系统.

    但是在许多方面你现在所需的是去获得系统的真正优点. 你目前要的是更
    多的应用程式,使你在 X的工作架构下做更广泛的应用, 这就是 MIT 发行版
    contrib 部分重要的地方. 它包含了所有阶层的广泛应用程式, 从详细的程式
    函数到方便的程式, 一直到完整的应用, 像事先看排版文件的 xdvi 或绘图程
    式 xfig.

    制造商与第三集团支持X的程式及套装软体数量不断地增加, 这些软体不是具有一个完整的X使用者介面, 就是至少可使你输出图形到一个X视窗. 当然也有其他的软体来源,举例而言, 自由软体基金提供高度弹性与扩展性的GNU Emacs编辑器, 它曾经被整合到X里面, (事实上, 许多 Xedit 订定编辑的功能键的确与 Emacs 相同) 如何得到 GNU Emacs 的细节包含在附录E \"如何获得X\" 中.
    发布人:netbull 来自:嵌入式Linux