X Window 系統(tǒng)使用指南--使用X的應(yīng)用程序
第10章 使用X的應(yīng)用程式 本章將介紹一些包含在 core 版本內(nèi)的公用程式, 它們的主要功能和視窗 系統(tǒng)并無(wú)密切關(guān)系, 但使用它們卻可提供一個(gè)相當(dāng)不錯(cuò)的使用者介面 :
. Xedit - 一個(gè)以視窗為基礎(chǔ)的 (window-based) 一般目的文字編輯器. . Xman - 一個(gè)指南頁(yè) (manpage) 或系統(tǒng)文件的瀏覽工具. . Xmh - 一個(gè) mh 郵件處理程式的視窗前端 (front-end) .
10.1 文字編輯器 - Xedit
Xedit 是一個(gè)非常簡(jiǎn)單而具有視窗介面的文字編輯器. 藉著對(duì) Xedit 所 顯示的選擇盒碰觸按鈕, 你可以完成某些操作, 但透過(guò)使用鍵盤(pán)你可以執(zhí)行的 更多, 特別是控制字元. 在這個(gè)程式內(nèi)大多數(shù)以鍵盤(pán)為基礎(chǔ)的功能由一個(gè)標(biāo)準(zhǔn) 軟體片段提供 -- 假如你喜歡也可以視為一個(gè)建□區(qū)塊 'building block' -- 叫做一個(gè)文字小工具 (text widget). (有關(guān)小工具 (Widget) 在 '資源 (Resources)' 那一章 (第15章)中我們將談得更多). 因?yàn)檫@是一個(gè)很普通的 結(jié)構(gòu), 且你將在其他地方遇到相同的編輯功能, 我們?cè)陔S後的幾節(jié)將詳細(xì)描述 它的功能.
10.1.1 啟動(dòng)與結(jié)束程式
假如你想編輯一個(gè)名叫 foobar的 檔案, 在 xterm 視窗鍵入命令 :
xedit foobar &
(假如你不想編輯已存在的檔案, 只要鍵入 'xedit &')
xedit 啟動(dòng)與顯示它的視窗, 如圖 10 - 1 :
┌————————————————┐ │ p108 fig 10 - 1 │ │ │ │ │ │ │ │ │ │ 圖 10 - 1 xedit 文字編輯器 │ └————————————————┘
視窗被分成三部分 :
. 上面是命令選單, 具有標(biāo)著 Quit, Save 等的命令盒.
. 中間部分是訊息視窗, xedit 在里面顯示錯(cuò)誤訊息與狀態(tài), 你也能把它 當(dāng)作一個(gè)抓取區(qū) (scratch area) 來(lái)使用, 可在里面鍵入一段你想剪貼 到其他地方的文字.
. 下面較大的部分是編輯視窗, 它顯示你正在編輯或建立的本文.
當(dāng)你想結(jié)束程式時(shí), 在 Quit 盒上碰觸左按鈕, 假如你做了一些改變但未 儲(chǔ)存, 則 xedit會(huì)在訊息視窗內(nèi)印出警告訊息 :
Unsaved changes. Save them, or press Quit again.
10.1.2 插入文字
首先確定指標(biāo)在編輯視窗內(nèi), 然後鍵入你要的文字 (鍵盤(pán)上任意的列印字 元),在你鍵入時(shí),被直接地插入. 當(dāng)你鍵入時(shí), 你將會(huì)注意到新插入的文字是不 斷地推送一個(gè)在它前面的一個(gè)小脫字符 (^) 游標(biāo) : 這個(gè)游標(biāo)是插入點(diǎn) (insertion point) 或簡(jiǎn)稱為點(diǎn) (point). 任何你鍵入的或貼入(paste-in) 的文字都將在這個(gè)點(diǎn)的位置被插入. 插入點(diǎn)總是位於兩個(gè)字元間, 而不在一個(gè) 字元上面 (就像一個(gè)正常終端機(jī)游標(biāo)的狀況).
自動(dòng) '列卷繞' (Line-Wrapping) -- xedit 的 '段落' (paragraphs)
當(dāng)你在接近一列的尾端插入文字, 假如你鍵入的字太長(zhǎng)以致無(wú)法適合目前 這一列時(shí), xedit 將自動(dòng)移至下一列. 假如接著剪短該字使得可以適合它原來(lái) 的列,它將再跳回上一列.
這個(gè)作用與 xedit 的段落定義息息相關(guān) : 一個(gè)段落是被新列字元 (newline character)終結(jié)的本文. (實(shí)際上它意味著連續(xù)鍵入文字而無(wú)需插入 新列字元) edit 列卷繞僅作用於一個(gè)段落內(nèi), 且能正確地處理特殊狀況, 例如 : 在移動(dòng)一個(gè)單字 (Word)到這列時(shí)造成這列必須卷繞到下一列的狀況等等.
注意 1 : 這個(gè)段落的定義實(shí)際上就是被各種其他 Unix 程式視為一列的定 義, 若你使用 xedit 編輯一個(gè)正常的檔案, xedit會(huì)將讀入的每一列 視為一個(gè)段落處理.
注意 2 : 顯示器沒(méi)有明顯的標(biāo)示出螢?zāi)簧系囊涣性谖捕擞幸粋€(gè)新列字元 (無(wú)法 憑肉眼直接辨識(shí)) , 亦即xedit 可能視它為一個(gè)列尾或一個(gè)段落.
注意 3 : 以 xedit 產(chǎn)生的檔案, 若用其他程式查看內(nèi)容時(shí), 可能看到具有非 常長(zhǎng)的一列.
譯注:這種方式類(lèi)似於 PC 上的 Wordstar 文書(shū)編輯器。
特殊插入操作
下面有一些插入新列的特殊命令, 各種命令稍為有些不同:
插入一個(gè)新列, 且插入點(diǎn)移至新列 : 按 RETURN. 便可以插入一個(gè)新列, 事 實(shí)上就像插入任何列印字元一樣. 且假如你不靠 xedit 的列卷繞, 這是移至新列的正常方法.
插入新列, 且對(duì)齊 : 按 LINEFEED鍵插入一新列并移動(dòng)插入點(diǎn)到下一列, 但任何你鍵入的列印文字將與上一列的文字對(duì)齊. (對(duì)鍵入表格等很有 用).
插入一新列, 但不移動(dòng)插入點(diǎn) : 按 ctl-O. 可以插入一個(gè)新列, 但點(diǎn)仍 留在同一列. (當(dāng)你想分開(kāi)一列并加文字到被分成二列中的第一列尾 端時(shí)使用)
10.1.3 剪 (cutting) 與貼 (pasting)
就像在 xterm 中一樣的, 你可以選擇并 '剪' 出一段文字, 但是有一個(gè) 討厭的差異 : 當(dāng)選擇字或列時(shí), 你必須迅速碰觸二次或三次按鈕 - 你不能在 按鈕按下或松開(kāi)時(shí)暫停.
在插入點(diǎn)的地方貼入文字時(shí), 你可以像以前一樣的碰觸中間按鈕, 或按 meta-Y鍵.
10.1.4 移動(dòng)插入點(diǎn)
移動(dòng)插入點(diǎn)最簡(jiǎn)單的方法是使用滑鼠 : 移動(dòng)視窗文字游標(biāo) (在圖 5 - 2 所看到的垂直棒)到任何你想要的地方, 并碰觸滑鼠左按鈕. 插入點(diǎn)的 ^ 標(biāo)志 即跳到新位置.
但通常使用鍵盤(pán)移動(dòng)插入點(diǎn)也很簡(jiǎn)單 - 當(dāng)你正在編輯時(shí), 它會(huì)打斷你的 節(jié)奏, 因?yàn)楸仨毮闷鸹? 移動(dòng)它, 最後再次將你的手移回鍵盤(pán). xedit 提供 一次移動(dòng)一個(gè)字元、單字、列或頁(yè)的方式移動(dòng)插入點(diǎn) :
一次一字元移動(dòng)插入點(diǎn)
這是移動(dòng)點(diǎn)的最基本型式 :
向前一個(gè)字元 : 按 ctl-f 或 RIGHTARROW
向後一個(gè)字元 : 按 ctl-b 或 LEFTARROW
向上一個(gè)字元 : 按 ctl-p 或 UPARROW
向下一個(gè)字元 : 按 ctl-n 或 DOWNARROW
假如你接近一列的開(kāi)頭, 按幾次 ctl-b 後,你將回到前一列. 按幾次 ctl-f 後可回復(fù)至原位. 假如你是在一頁(yè)的最上面 (最下面) 一列, 類(lèi)似的 效果會(huì)發(fā)生 : 移至前 (或下)一列, 將引起文字卷動(dòng)使你移至的列能被看得 見(jiàn).
一次移動(dòng)一個(gè)單字、一列或一個(gè)段落
這些是編輯文字時(shí)所須的自然移動(dòng)功能.
向前一個(gè)單字 : 按 meta-F 或 meta-f
向後一個(gè)單字 : 按 meta-B 或 meta-b
移至列尾 : 按 ctl-E
移到列的開(kāi)頭 : 按 ctl-A
向前一個(gè)段落 : 按 meta-]
向後一個(gè)段落 : 按 meta-[
你可以看到一個(gè)規(guī)律開(kāi)始浮現(xiàn) : ctl-char 對(duì)單一字元操作. 而 meta-char 對(duì)單字作相同的事. e.g. ctl-F 向前一個(gè)字元, meta-F 向前一個(gè)字.
大量移動(dòng) - 以頁(yè)與檔案為單位
假如你想獲得較大的跳越, 就像在 xterm 里面一樣, 你可以使用卷動(dòng)棒 . 然而, 卷動(dòng)文字并不會(huì)移動(dòng)插入點(diǎn) : 當(dāng)你鍵入或清除任何內(nèi)容時(shí), 文字將 自動(dòng)地卷回插入點(diǎn), 讓你可以看到你作了甚麼.
如果你想卷動(dòng)顯示內(nèi)容且移動(dòng)插入點(diǎn), 使用 :
往前一頁(yè) : 按 ctl-V
往後一頁(yè) : 按 meta-V
到檔案的開(kāi)頭 : 按 meta->
到檔案的尾端 : 按 meta-<
10.1.5 移除不想要的文字 - 刪除 (Deleting) 或 殺掉 (Killing)
有兩種移除文字的技巧 - 刪除只將文字移除, 殺掉則除了移除文字外, 并將文字儲(chǔ)存至 '剪緩沖區(qū)' (cut buffer), 以便稍後你可以取回. 殺掉命令 僅對(duì)較大單位的文字作用 (最小單位為單字) - 因?yàn)榧偃缒銊h除一個(gè)字元, 它 就像沒(méi)有殺掉它一樣很容易再打入.
在下面的敘述, '下一個(gè)' (next) 意思是正好在插入點(diǎn)之後, '前一個(gè)' (previous) 意思是正好在插入點(diǎn)之前.
刪除文字
刪除前一個(gè)字元 : 按 DELETE 或 BACKSPACE 或 CTL-H.
刪除下一個(gè)字元 : 按 CTL-D.
刪除下一個(gè)單字 : 按 meta-d.
刪除前一個(gè)單字 : 按 meta-h, 或 meta-DELETE 或 meta-BACKSPACE, 不用 SHIFT 鍵.
注意 : meta-h 與 meta-H 不同.
假如你在一列的開(kāi)頭按下 DELETE 鍵, 它將刪除前一列的尾端的新列字 元, 而將兩列合并成一列.
殺掉文字
殺掉下一個(gè)單字 : 按 meta-D
殺掉前一個(gè)單字 : 按 meta-H 或 shift-meta-DELETE shift-meta-BACKSPACE.
從游標(biāo)位置殺到列尾 : 按 ctl-K
從游標(biāo)位置殺到段尾 : 按 meta-k
殺掉目前選定的文字區(qū)塊 : 按 ctl-W
救回殺掉的文字; 拷貝與移動(dòng)文字
只要你曾經(jīng) kill 某些文字, 你就能按 ctl-Y 救回它, 最近被殺掉的文 字在插入點(diǎn)的地方被插入. 但有幾點(diǎn)須注意 :
. 只有最近被殺掉的文字可以被救回 - 你無(wú)法將一連串被殺掉的文字取 回.
. 救回的文字是被插入到目前插入點(diǎn)的位置 - 不是該段文字原先被移除 的地方.
. 若是需要的話你可以救回相同的文字許多次, 亦即按 ctrl-Y 并不影響 緩沖區(qū)之內(nèi)容.
基於'殺掉'動(dòng)作的原理, 你可以用它來(lái)移動(dòng)或拷貝文字區(qū)域.
移動(dòng)文字 : 先 kill 它, 再將點(diǎn)移動(dòng)到你想重新放置的地方, 最後 un-kill.
拷貝文字 : 先 kill 它并 un-kill 它, 使拷貝的來(lái)源不變; 再將 點(diǎn)移動(dòng)到你想拷貝的地方, 最後 un-kill.
10.1.6 取消改變 (Undoing Changes)
假如你作了某些改變 - 殺掉或刪除或鍵入或貼入文字 - 但稍後發(fā)現(xiàn)并不 是想要的, 你可以復(fù)舊 (undo) 它. 在 undo 盒里碰觸左鍵 : 取消最近的改變 . undo本身也是一個(gè)改變, 所以假如你再次碰觸 undo, 它將取消前一個(gè) undo 的作用; 你可以永遠(yuǎn)地像這樣一直切換下去.
undo 僅對(duì)最近的改變有作用. 假如你想更往回追溯, 你可以利用 more 盒 連續(xù)地 undo 更前面的改變.
10.1.7 使用檔案
前面曾提到在啟動(dòng)程式時(shí)你可以指定欲編輯的檔案,事實(shí)上當(dāng)程式執(zhí)行時(shí) , 你也能抓取檔案. 為達(dá)到這個(gè)目的你將會(huì)使用介於 load 與 undo間的文字 盒,我們稱為'檔名盒'.
儲(chǔ)存文字到一個(gè)檔案 : 在 save 盒上碰觸左按鈕; xedit 會(huì)將編輯視窗內(nèi) 的文字存到檔名為檔名盒內(nèi)檔名的檔案; 若沒(méi)有名稱, xedit會(huì)在訊息 窗內(nèi)發(fā)出
save : no filename specifIEd -- noting saved
因此在你再次在 save 上碰觸左按鈕之前你必須將指標(biāo)移到檔名盒并 鍵入檔名. 當(dāng)它已經(jīng)儲(chǔ)存好檔案 xedit 會(huì)發(fā)出確認(rèn)訊息.
編輯一個(gè)不同檔案 : 在檔名盒鍵入檔名, 并在 load 上碰觸左按鈕. 若 它無(wú)法取用檔案, xedit 會(huì)發(fā)出錯(cuò)誤訊息.
插入一個(gè)檔案到目前的本文 : 按下 meta-I : xedit 突現(xiàn)一個(gè)小視窗 (圖 10 - 2). 在上端的文字盒, 鍵入你想插入的檔名, 并在 DoIt 上碰觸左按鈕. 該檔案的內(nèi)容即插入目前的插入點(diǎn)位置.
┌——————————————————┐ │ p113 fig 10 - 2 │ │ │ │ │ │ │ │ │ │ 圖 10 - 2 xedit 的插入檔案選擇視窗 │ └——————————————————┘
注 : 當(dāng)你在檔名盒內(nèi)鍵入文字時(shí), 且文字盒在 '插入檔案' (INSERT FILE)視 窗, 你可以使用我們?cè)?jīng)描述過(guò)的所有鍵盤(pán)基礎(chǔ)命令. 事實(shí)上, 你不僅能打字 , 也可以剪貼它們.
注意 : 當(dāng)你鍵入檔名時(shí), 不須用 RETURN 結(jié)尾 - xedit 會(huì)將 RETURN 視為檔 名的一部分, 而造成混淆.
10.1.8 搜尋指定的文字字串
假如你想找出一個(gè)指定字串在你編輯本文中出現(xiàn)的地方 :
1. 在我們稱為搜尋字串盒 (searchstring box)的里面, 鍵入字串於 Search >> 的右方.
2. 在 Search >> 上碰觸左按鈕 : 插入點(diǎn)便會(huì)移至本文中下一個(gè)出現(xiàn)該 字串的地方.
搜尋是由插入點(diǎn)開(kāi)始,并且 xedit 預(yù)設(shè)的搜尋方向是向前, 而不往後搜尋. 假如 你要從插入點(diǎn)往回搜尋, 你可以在 << 上碰觸左按鈕.
注意 : 當(dāng)搜尋字串盒內(nèi)沒(méi)有文字時(shí), 假如你在 Search >> 或 << 上碰觸按鈕, xedit 會(huì)將最近在你機(jī)器上被任何應(yīng)用程式所選擇的文字區(qū)塊的片段拷 貝到盒內(nèi), 并搜尋它. 假如你不預(yù)期會(huì)如此, 你可能會(huì)感到非常驚訝.
10.1.9 取代一個(gè)字串為另一個(gè)
假如你想將出現(xiàn)許多次的一個(gè)字串 (舊) 置換成為另一個(gè)字串 (新) :
1. 先搜尋出本文中第一次出現(xiàn)欲取代字串的地方, 如前一小節(jié)所訴述.
2. 在 all 盒右方的取代字串盒內(nèi)鍵入新字串.
3. 在 replace 上碰觸左按鈕 : 舊字串即被取代成新字串, 且插入點(diǎn)移 到下一個(gè)出現(xiàn)舊字串的地方.
4. 假如你也要取代它, 再次在 replace 上碰觸, 否則 ...
5. ... 假如你不想取代這個(gè), 但想改變它後面的, 在 search >> 上碰觸 按鈕直到你要改變的地方, 即可以再次取代它.
在你往回移動(dòng)檔案時(shí)你無(wú)法執(zhí)行取代, 換言之你無(wú)法用簡(jiǎn)單的方法取代在 插入點(diǎn)之前的字串.
注意 : 假如你目前不在舊字串出現(xiàn)的位置而你試圖取代, xedit 會(huì)發(fā)出下列 訊息 :
ReplaceOne : nothing replaced
但是 replace 本身會(huì)完成一個(gè)搜尋, 所以你可以繼續(xù)在 replace 上 碰觸按鈕, 再次執(zhí)行代換.
取代每個(gè)出現(xiàn)的字串
假如你想將出現(xiàn)的每個(gè)舊字串取代成新字串, 在 all 上碰觸按鈕.
注意 : 使用 all 時(shí)所有出現(xiàn)的舊字串均會(huì)被取代, 不只是從點(diǎn)往前而已, 而 是整個(gè)檔案.
10.1.10 雜項(xiàng)功能
重繪本文顯示 : 使用時(shí)機(jī)例如當(dāng)視窗內(nèi)變得混雜扭曲, 按 ctrl-L
向前卷動(dòng)一列 : 按 ctrl-Z
往回卷動(dòng)一列 : 按 meta-Z
跳至指定的行數(shù) : 在訊息視窗內(nèi), 鍵入你要跳往的行數(shù), 用滑鼠選擇你 正在打的本文, 并在 jump 上碰觸左按鈕, 插入點(diǎn)便會(huì)跳至指定列 的開(kāi)頭. (假如在螢?zāi)簧嫌袘?yīng)用程式的文字片段含有你要指定的列數(shù) 數(shù)字, 你可以利用它 - 而不必依賴 xedit 編輯訊息視窗)
到此我們已經(jīng)完成對(duì) xedit 的描述, 下一節(jié)將轉(zhuǎn)移到另一個(gè)應(yīng)用程式, 我們將會(huì)看到類(lèi)似的使用者操作介面.
10.2 讀取指南頁(yè) (Manual Pages) - xman
xman 讓你瀏覽系統(tǒng)上的 Unix 指南頁(yè), 從一系列選單中選出你要的項(xiàng)目.
欲啟動(dòng)程式時(shí),在一個(gè) xterm 視窗中鍵入命令 'xman &' : xman 啟動(dòng)并 顯示它的主功能選擇項(xiàng)視窗, 如圖 10 - 3. 下面的小節(jié)將詳細(xì)描述這些選擇項(xiàng).
┌—————————————————┐ │ p115 fig 10 - 3 │ │ │ │ │ │ │ │ │ │ 圖 10 - 3 xman 的主選擇項(xiàng)視窗 │ └—————————————————┘
10.2.1 xman 本身的線上求助 (on-line help) 功能
xman 有它自己的內(nèi)建求助選擇項(xiàng). 欲使用它, 在選擇視窗內(nèi)的 help 上 碰觸按鈕.xman 產(chǎn)生一個(gè) 'Xman Help' 視窗, 如圖 10 - 4. 你可以使用卷 動(dòng)棒與滑鼠卷動(dòng)求助本文. 在求助本文視窗內(nèi)操作方式如下: 向前移動(dòng)本文 : 按 f, 或碰觸左按鈕, 即向前移動(dòng)一頁(yè).
往回移動(dòng)本文 : 按 b, 或碰觸右按鈕, 即往回移動(dòng)一頁(yè).
┌—————————————————┐ │ p116 fig 10 - 4 │ │ │ │ │ │ │ │ │ │ 圖 10 - 4 xman 求助視窗 │ └—————————————————┘
注意 : 按 b, 或碰觸右按鈕, 可能無(wú)法正確地往回移動(dòng)一頁(yè).
求助視窗內(nèi)的其他選擇項(xiàng)
移動(dòng)指標(biāo)到求助視窗上端的邊緣時(shí). 圖 10 - 5 的選單突現(xiàn)出來(lái). 其中可 使用的選項(xiàng)有 :
Remove Help (移開(kāi)求助) : 移開(kāi)這個(gè)求助視窗, 但保持其他 xman 視窗 的原樣. (在我們的情況是仍得到主選擇視窗)
Open New Manpage (開(kāi)啟新指南頁(yè)) : 與主選擇視窗的 Manual Page 盒 相同, 描述於後.
Quit : 結(jié)束整個(gè)程式 (停止).
欲選擇某一選項(xiàng)須移動(dòng)指標(biāo)到該選單區(qū)并碰觸左按鈕; 假如你甚麼都不想選 , 只要將指標(biāo)移出選單即可.
┌——————————————————┐ │ p117 fig 10 - 5 │ │ │ │ │ │ │ │ │ │ 圖 10 - 5 xman 求助與指南頁(yè)視窗選單│ └——————————————————┘
注意 : 在任何時(shí)刻, 只要指標(biāo)進(jìn)入頂端邊緣區(qū), xman 就會(huì)突現(xiàn)它的選單. 假如 你不是為了這個(gè)目的而意外地橫過(guò)邊緣, 這可能會(huì)造成困擾.
10.2.2 如何閱讀一個(gè)指南頁(yè)
在主選擇視窗的 Manual Page 碰觸按鈕 : xman 產(chǎn)生一個(gè)指南頁(yè)視窗, 視窗開(kāi)始時(shí)會(huì)顯示與前面求助視窗相同的文字.
由此出發(fā), 依照下列三步驟閱讀指南頁(yè) :
1. 選擇你要看的指南頁(yè)的特定章節(jié) (section). (section 是參考 unix 指南頁(yè)的標(biāo)準(zhǔn)分法. 亦即, section no. 1 包含使用者命令, section no. 2 包含系統(tǒng)呼叫)
2. 視窗會(huì)顯示你所選擇章節(jié)的目錄, 從目錄中選擇進(jìn)入點(diǎn).
3. 閱讀顯示的指南頁(yè).
選擇指南書(shū) (Manual) 的章節(jié)
當(dāng) man啟動(dòng)時(shí), 它預(yù)先設(shè)定為選擇指南書(shū)的 section 1. 假如這是你所要 的, 你可以省略下列步驟的程序. 否則需指定一個(gè) section :
1. 在指南頁(yè)視窗內(nèi), 移動(dòng)指標(biāo)到頂端邊緣. 我們將得到一個(gè)與在指南頁(yè) 里相同的突現(xiàn)選單,不過(guò)現(xiàn)在所有的選項(xiàng)都可使用.
2. 在 Change Section 項(xiàng)目上碰觸按鈕 : 選單被一系列的指南書(shū)章節(jié)名 稱的列表取代. (如圖 10 - 6)
┌—————————————————┐ │ p117 fig 10 - 6 │ │ │ │ │ │ │ │ │ │ 圖 10 - 6 xman 的指南書(shū)章節(jié)選單 │ └—————————————————┘
3. 在你要的章節(jié)上碰觸按鈕 : xman 在指南頁(yè)視窗內(nèi)顯示進(jìn)入點(diǎn)的目錄 (如圖 10 - 7).
┌—————————————————┐ │ p118 fig 10 - 7 │ │ │ │ │ │ │ │ │ │ 圖 10 - 7 xman 的指南頁(yè)進(jìn)入點(diǎn)目錄│ └—————————————————┘
顯示目錄和選擇指南頁(yè)
假如你依照上面的描述明白地指定一個(gè)指南頁(yè)章節(jié), xman便會(huì)顯示一個(gè) 指南頁(yè)目錄.否則, 從頂端邊緣突現(xiàn)出選單, 并在 Display Directory 上碰觸 按鈕, 你會(huì)得到像上面一樣的指南頁(yè)目錄.
從目錄中選擇一個(gè)指南頁(yè) : 只要在你要的名稱上碰觸按鈕, xman 即在視 窗內(nèi)顯示指南頁(yè) (圖 10 - 8). (假如目錄列表太長(zhǎng)以致視窗無(wú)法一次 顯示, 它旁邊會(huì)有卷動(dòng)棒. 假如你要的名稱看不到, 則必須先將它卷動(dòng) 出現(xiàn)後才可以選擇你要的名稱)
┌———————————————————┐ │ p119 fig 10 - 8 │ │ │ │ │ │ │ │ │ │ 圖 10 - 8 顯示一個(gè)指南頁(yè)的 xman 視窗 │ └———————————————————┘
察看一個(gè)指南頁(yè)
只要指南頁(yè)在視窗內(nèi), 你有許多選擇 :
卷動(dòng)指南頁(yè)本文 : 卷動(dòng)指南頁(yè)本文就像卷動(dòng)求助本文一樣, 亦即, 按 f, 或碰觸左按鈕, 即可向前移動(dòng), 按 b, 或碰觸右按鈕, 則可 往回移動(dòng).
本文/目錄間之切換 : 在指南頁(yè)視窗碰觸中間按鈕, 本文即被切換成目 錄列表. (在目錄內(nèi)碰觸按鈕, 則回到上一個(gè)指南頁(yè)本文顯示).
搜尋一個(gè)指定的指南頁(yè) :
1. 從頂端邊緣突現(xiàn)出選單并選擇 Search. xman 突現(xiàn)出一個(gè)搜尋視窗 (圖 10 - 9).
2. 在頂端的本文盒內(nèi), 鍵入你想要的指南頁(yè)名稱 (不用任何 section 接尾詞, 例如你只要鍵入 diff, 不用鍵入 diff(1) 或 diff.1)
3. 在 Manual Page 上碰觸按鈕,xman 便會(huì)顯示你所要的指南頁(yè). (假 如它找不到, 它會(huì)在指南頁(yè)的視窗頂端邊印出一個(gè)訊息)
注意 : 你鍵入的名稱必須完全 (di 不能代表 diff), 名稱的大小寫(xiě)也必須配 合 (xaddhost 不等於 XAddHost).
┌—————————————————┐ │ p120 fig 10 - 9 │ │ │ │ │ │ │ │ │ │ 圖 10 - 9 xman 搜尋視窗 │ └—————————————————┘
許多項(xiàng)目一起顯示
在任何時(shí)刻, 你都可以視需要開(kāi)啟額外的 xman 視窗, 只需從頂端邊緣突 現(xiàn)出選單并選擇 Open New Manpage 開(kāi)啟一個(gè)指南頁(yè)視窗, 然後選擇 Help 開(kāi) 啟一個(gè)求助視窗.
只要你喜歡你可以開(kāi)啟許多不同的 xman 視窗, 且對(duì)視窗管理器來(lái)說(shuō)每一 個(gè)都可以被獨(dú)立地管理, 例如 : 你可以將某些重定大小, 其它的表徵圖化等等. 為了清楚起見(jiàn), 主選擇視窗、求助視窗及指南頁(yè)視窗的表徵圖均不同 (圖 10 - 10 a, b, c). (表徵圖內(nèi)的 'U.P.M.' 代表 'Unix Programmer's Manual')
┌—————————————————┐ │ p120 fig 10 - 10 │ │ │ │ │ │ │ │ │ │ 圖 10 - 10 xman 的三個(gè)不同表徵圖 │ └—————————————————┘
在任何一個(gè) xman 視窗, 選擇 Show Both Screen, 你可以同時(shí)顯示目錄 及指南頁(yè),視窗分成上下兩部分, 上面顯示目錄, 下面顯示指南頁(yè) (圖 10 - 11) . (當(dāng)你如此做時(shí), 頂端的邊緣變薄 : Display Directory 與 Display Manual Page 選擇項(xiàng)變成灰色 -- 表示它們目前不可選用, 且選單項(xiàng)目 Show Both Screen 變成 Show One Screen).
┌——————————————————————┐ │ p121 fig 10 - 11 │ │ │ │ │ │ │ │ │ │ 圖 10 - 11 同時(shí)顯示目錄與指南頁(yè)的 xman 視窗│ └——————————————————————┘
如有需要, 你可以改變視窗中兩個(gè)分框 (panes) 的相對(duì)大小, 注意接近分 隔框線的右手邊有一個(gè)小的黑方形叫做把手 (柄) (grip)
1. 將指標(biāo)指向把手.
2. 按下任一滑鼠按鈕, 并保持按著.
3. .. 拖拽分隔線至你要的地方.
4. 放開(kāi)按鈕,兩個(gè)方框即被適當(dāng)?shù)刂貏?
注意 : 我們會(huì)在不同的X應(yīng)用看到許多這種把手, 但大部份的情況均無(wú)法讓你 拉動(dòng)它以重調(diào)與相鄰視窗的比例. 例如 : 假如你試圖拉 xman 頂端 邊緣與本文或目錄視窗分隔線上的把手, 它不會(huì)有任何反應(yīng).
10.3 郵件/訊息處理系統(tǒng) - xmh
xmh 是一個(gè)架在 mh 郵件/訊息處理系統(tǒng)之上的X介面. 當(dāng)你啟動(dòng)它時(shí), xmh 會(huì)建立一個(gè)像圖 10 - 12 的視窗. 程式的視窗相關(guān)畫(huà)面如編輯本文, 與管理視 窗方框,均與 xedit 及 xman十分類(lèi)似, 事實(shí)上是由相同的內(nèi)部結(jié)構(gòu)所提供的. 正因?yàn)槿绱? 且由於大多數(shù)描述是與程式的郵件功能有關(guān)而較少與X有關(guān), 我 們不進(jìn)一步討論. 假如你想知道如何使用程式, 指南頁(yè)擁有一個(gè)簡(jiǎn)單但內(nèi)容豐 富的描述.
┌—————————————————┐ │ p123 fig 10 - 12 │ │ │ │ │ │ │ │ │ │ 圖 10 - 12 xmh 郵件處理視窗 │ └—————————————————┘
10.4 結(jié)論/摘要
在本章中你已經(jīng)開(kāi)始看到某些X應(yīng)用程式在使用者介面上一致性的面貌, 例如:卷動(dòng)棒的操作, 和一般的本文編輯功能. 這里只歸結(jié)出包含在 core 發(fā)行版本中的一般使用者程式,下一章探討一些示□程式, 然後我們便進(jìn)入本 書(shū)第三部分,探討如何訂制一個(gè)系統(tǒng).
但是在許多方面你現(xiàn)在所需的是去獲得系統(tǒng)的真正優(yōu)點(diǎn). 你目前要的是更 多的應(yīng)用程式,使你在 X的工作架構(gòu)下做更廣泛的應(yīng)用, 這就是 MIT 發(fā)行版 contrib 部分重要的地方. 它包含了所有階層的廣泛應(yīng)用程式, 從詳細(xì)的程式 函數(shù)到方便的程式, 一直到完整的應(yīng)用, 像事先看排版文件的 xdvi 或繪圖程 式 xfig.
制造商與第三集團(tuán)支持X的程式及套裝軟體數(shù)量不斷地增加, 這些軟體不 是具有一個(gè)完整的X使用者介面, 就是至少可使你輸出圖形到一個(gè)X視窗. 當(dāng) 然也有其他的軟體來(lái)源,舉例而言, 自由軟體基金提供高度彈性與擴(kuò)展性的 GNU EMacs編輯器, 它曾經(jīng)被整合到X里面, (事實(shí)上, 許多 Xedit 訂定編輯 的功能鍵的確與 Emacs 相同) 如何得到 GNU Emacs 的細(xì)節(jié)包含在附錄E '如何 獲得X' 中.
