Emacs 快速指南
-折疊目錄
- 1. 小結(jié)(SUMMARY)
- 2. 基本的光標控制(BASIC CURSOR CONTROL)
- 3. 如果 EMACS 失去響應(yīng)(IF EMACS STOPS RESPONDING)
- 4. 被禁用的命令(DISABLED COMMANDS)
- 5. 窗格(WINDOWS)
- 6. 插入與刪除(INSERTING AND DELETING)
- 7. 撤銷(UNDO)
- 8. 文件(FILE)
- 9. 緩沖區(qū)(BUFFER)
- 10. 命令集擴展(EXTENDING THE COMMAND SET)
- 11. 自動保存(AUTO SAVE)
- 12. 回顯區(qū)(ECHO AREA)
- 13. 狀態(tài)欄(MODE LINE)
- 14. 搜索(SEARCHING)
- 15. 多窗格(MULTIPLE WINDOWS)
- 16. 多窗口(MULTIPLE FRAMES)
- 17. 遞歸編輯(RECURSIVE EDITING LEVELS)
- 18. 獲得更多幫助(GETTING MORE HELP)
- 19. 更多精彩(MORE FEATURES)
- 20. 總結(jié)(CONCLUSION)
- 21. 翻譯(TRANSLATION)
- 22. 版權(quán)聲明(COPYING)
Emacs 快速指南.(查看版權(quán)聲明請至本文末尾)
【注意:位于【】之間的內(nèi)容是譯注,比如本行,下同。】
Emacs 鍵盤命令通常包含 CONTROL 鍵(有時候以 CTRL 或 CTL 來標示)和 META 鍵(有時候用 EDIT 或 ALT 來標示)。為了避免每次都要寫出全名,我們 約定使用下述縮寫:
C-<chr> 表示當輸入字符 <chr> 時按住 CONTROL 鍵。因此 C-f 就表示:按住 CONTROL 鍵再輸入 f。M-<chr> 表示當輸入字符 <chr> 時按住 META(或 EDIT 或 ALT)鍵。如果你的鍵盤上沒有 META 、EDIT 或 ALT 鍵,用下述方法也等效:先按一下 ESC 鍵然后放開,再輸入 <chr>。我們用 <ESC> 來表示ESC 鍵。重要提示:要退出 Emacs,請用 C-x C-c(兩個連續(xù)的組合鍵)。 要退出一個正在運行中的命令,請用 C-g。 下文中左邊頂行的“: >>”字樣用來提示你嘗試鍵盤命令。比如:
[本頁當中特意留出一些空白是出于教學目的,請繼續(xù)往后閱讀]
>> 現(xiàn)在輸入 C-v (查看下一屏文字)移動到下一屏。(別緊張,在輸入字符 v 的同時注意要按住 CONTROL 鍵) 從現(xiàn)在開始,每讀完當前一屏你都需要這樣做一次。
值得注意的是,當你從上一屏滾到下一屏時,中間會有兩行的重復;這樣做是為 了維持滾屏的連續(xù)性,方便你順暢、連續(xù)地閱讀。
用編輯器,開門第一件事就是學會在文字中移動。你已經(jīng)知道了 C-v 可以向下移 動一屏,要往上移,請用 M-v (也就是按住 META 鍵,然后輸入v,如果你沒有 META、EDIT 或 ALT 鍵那么就先按 <ESC> 再按 v)。
>> 試試 M-v,然后再試試 C-v,來回遛幾次。1?小結(jié)(SUMMARY)
以下命令在翻頁瀏覽時相當有用:
C-v 向前移動一屏 M-v 向后移動一屏 C-l 重繪屏幕,并將光標所在行置于屏幕的中央(注意是 CONTROL-L,不是 CONTROL-1) >> 找到光標,留意其附近的文字,然后輸入 C-l。找找光標在哪里,你會發(fā)現(xiàn)其附近的文字與之前相同,位置卻變?yōu)槠聊坏闹行摹?如果你再次輸入 C-l ,附近的文字將移動到屏幕的頂端。再次輸入 C-l , 文字將移動到底端。
如果你的鍵盤上有 PageUp 和 PageDn,也可以用這兩個鍵來滾屏。不過使用 C-v 和 M-v 的效率要更高一些。
2?基本的光標控制(BASIC CURSOR CONTROL)
整屏的移動很有用,但是如何在文字中精確定位呢?
有幾種方式可以選擇。用方向鍵當然可以,不過更有效率的方法是保持雙手位于 主鍵盤區(qū),然后使用 C-p 、 C-b 、 C-f 和 C-n 這四個命令。它們的功能和方 向鍵是一樣的,如下圖所示:
上一行 C-p::向左移 C-b .... 目前光標位置 .... 向右移 C-f::下一行 C-n >> 用 C-n 或 C-p 將光標移到上圖的中央。按 C-l,整幅圖會被顯示在屏幕的中央。“P N B F”四個字母分別代表了四個詞,用這四個詞記憶這些組合鍵會更容易: P 代表 previous(上一行),N 代表 next(下一行),B 代表 backward(回 退),而 F 則代表 forward(前進)。這些組合鍵今后將與你形影不離。
>> 按幾次 C-n 把光標往下挪到這里。 >> 用 C-f 把光標移動到這一行,然后再用 C-p 往上挪。注意觀察當光標在一行的中央時 C-p 命令的行為。
每行文字都以一個“換行符”結(jié)束,“換行符”把行與行區(qū)分開來。(通常情況下, 一個文件的最后一行會有一個換行符,但是 Emacs 不強制要求這一點。)
>> 在一行的行頭輸入 C-b。光標應(yīng)該會移動到前一行的行尾,因為光標在回退過程中越過了換行符。
同樣 C-f 也可以像 C-b 一樣越過換行符。
>> 連按幾次 C-b,感受一下光標的移動。然后按幾次 C-f 回到本行的行尾。 再按一次 C-f,光標會移動到下一行。
當你移動光標穿越屏幕的上下邊界時,在邊界外的文字會移動到屏幕內(nèi),這稱為 “滾動”(scrolling)。滾動使得光標可以被移動到文字中的任何位置,并且還 不會讓光標跑到屏幕外邊去。
>> 用 C-n 將光標下移,一直越過屏幕邊界,同時觀察發(fā)生了什么變化。如果你嫌一個字符一個字符地挪光標太慢,你還可以一個詞一個詞地跳。M-f (META-f) 可以將光標往前移動一個詞,而 M-b 則是往后移。【這里的“詞”指 英文單詞,對中文來說,則是指移動到下一個標點符號。】
>> 試試 M-f 和 M-b。如果光標停在一個詞的中間,M-f 會移動到這個詞的末尾。如果光標處于詞與詞 之間的空白處,M-f 會移動到下一個詞的末尾。M-b 的功能類似,只是方向相反。
>> 按幾次 M-f 和 M-b,中間夾雜一些 C-f 和 C-b。你可以觀察到 M-f 和 M-b 在不同位置上所表現(xiàn)出來的不同行為。
請注意 C-f 、C-b 和 M-f 、M-b 兩對之間的類比關(guān)系。通常的慣例是:META 系 列組合鍵用來操作“由語言定義的單位(比如詞、句子、段落)”,而 CONTROL 系列組合鍵用來操作“與語言無關(guān)的基本單位(比如字符、行等等)”。
類似的慣例在“行”與“句子”之間也同樣適用:C-a 和 C-e 可以將光標移動到 “一行”的頭部和尾部;而 M-a 和 M-e 則將光標移動到“一句”的頭部和尾部。
>> 按兩次 C-a,再按兩次 C-e。按兩次 M-a,再按兩次 M-e。
想一想為什么重復的 C-a 命令會沒有作用,而重復的 M-a 命令則會讓光標不斷 地回退到上一個句子。雖然這個類比規(guī)律并不嚴格,但是很自然。
光標停留的位置也可以稱作“點位”(point)。或者干脆說,光標指示出了屏幕 上“點位”在文本中的位置。
這里對簡單的光標移動命令做一個總結(jié),其中也包括了整詞和整句的移動:
C-f 向右移動一個字符 C-b 向左移動一個字符M-f 向右移動一個詞【對中文是移動到下一個標點符號】 M-b 向左移動一個詞【對中文是移動到上一個標點符號】C-n 移動到下一行 C-p 移動到上一行C-a 移動到行首 C-e 移動到行尾M-a 移動到句首 M-e 移動到句尾 >> 把上面所有的命令都練習幾次,這些可都是最常用的命令。這里還要介紹兩個重要的光標移動命令:M-< (META 小于號)可以將光標移動到 所有文字的最開頭;M-> (META 大于號)可以將光標移動到所有文字的最末尾。
注意,在大部分鍵盤上,小于號(<)需要用上檔鍵(Shift)來輸入,所以在這 些鍵盤上你應(yīng)該用 Shift 鍵來輸入 M-<,如果不按 Shift 鍵,你輸入的會是 M-comma(META 逗號)。
>> 試一試 M-< ,移到本快速指南的最開始。然后再按幾次 C-v 回到這里。
>> 試一試 M-> ,移到本快速指南的最末尾。然后再按幾次 M-v 回到這里。
如果你的鍵盤上有方向鍵的話,也可以用它們來移動光標。不過我們有三個理由 推薦你學習 C-b 、C-f 、C-n 、和 C-p:(1)它們在任何鍵盤上都能用。(2) 當你熟練使用 Emacs 之后,你會發(fā)現(xiàn)用這些組合鍵比用方向鍵要快得多,因為你 的手不需要離開打字區(qū)。(3)一旦你習慣了使用這些組合鍵,你也可以很容易地 適應(yīng)其它更高級的光標移動命令。
大部分的 Emacs 命令接受數(shù)字參數(shù),并且對于多數(shù)命令而言,這些數(shù)字參數(shù)的作 用是指定命令的重復次數(shù)。為一個命令指定數(shù)字參數(shù)(也就是重復次數(shù))的方法 是:先輸入 C-u,然后輸入數(shù)字作為參數(shù),最后再輸入命令。如果你有META (或 EDIT 或 ALT)鍵,那么還有另一種辦法:按住 META 鍵不放,然后輸入數(shù)字。不 過我們還是建議你用 C-u,因為它在任何終端機上都能用。這種數(shù)字參數(shù)也稱為 “前綴參數(shù)”,意思是說這個參數(shù)是先于使用它的命令而輸入的。
舉例來說, C-u 8 C-f 會向前移動 8 個字符。
>> 為 C-n 或者 C-p 指定一個數(shù)字參數(shù),這樣你可以只用一個命令就把光標移動到本行的附近。
雖然大部分命令把數(shù)字參數(shù)解釋為其重復次數(shù),但是也有些命令例外,它們將數(shù) 字參數(shù)另做它用。比如有些命令(我們目前還沒學到)僅僅將前綴參數(shù)作為一個 標志――只要給出有一個前綴參數(shù),不管其值為何,它都會改變命令的功能。
而 C-v 和 M-v 則屬于另一種類型的例外。當給定一個參數(shù)時,它們將滾動你指 定的“行數(shù)”,而不是“屏數(shù)”。舉例來說,C-u 8 C-v 將文本向下滾動 8 行。
>> 現(xiàn)在試試看,輸入 C-u 8 C-v。這個命令應(yīng)該已經(jīng)將文字向上滾動了 8 行。如果你想將它再次地向下滾動,你可 以給定一個參數(shù)然后執(zhí)行 M-v。
如果你正在使用圖形界面,比如 X 或者微軟的 Windows,那么在 Emacs窗 口的一邊應(yīng)該有一個長方形的區(qū)域叫“滾動條”。你可以用鼠標操縱滾動條來滾動 文字。
如果你的鼠標有滾輪的話,你也可以使用滾輪來滾動。
3?如果 EMACS 失去響應(yīng)(IF EMACS STOPS RESPONDING)
如果 Emacs 對你的命令失去響應(yīng),你可以用 C-g 來安全地終止這條命令。C-g 也可以終止一條執(zhí)行過久的命令。
C-g 還可以取消數(shù)字參數(shù)和只輸入到一半的命令。
>> 輸入 C-u 100 設(shè)定一個值為 100 的數(shù)字參數(shù),然后按 C-g。現(xiàn)在再按 C-f,光標應(yīng)該只會移動一個字符,因為你已經(jīng)用 C-g 取消了參數(shù)。
如果你不小心按了一下 <ESC>,你也可以用 C-g 來取消它。 【這個說法似乎有問題,因為按照這個按鍵順序輸入的應(yīng)該是 C-M-g。 取消 <ESC> 的正確做法是再連按兩次 <ESC>。】
4?被禁用的命令(DISABLED COMMANDS)
有一些 Emacs 命令被“禁用”了,以避免初學者在不了解其確切功能的情況下誤 用而造成麻煩。
如果你用到了一個被禁用的命令,Emacs 會顯示一個提示消息,告訴你這個命令 到底是干什么的,詢問你是否要繼續(xù),并在得到你的肯定之后再執(zhí)行這命令。
如果你真的想用這條命令,在 Emacs 詢問你的時候應(yīng)該按空格。一般來說,如果 你不想用,就按“n”。
>> 試試 C-x C-l (這是一個被禁用的命令)然后用 n 來回答詢問。
5?窗格(WINDOWS)
Emacs 可以有多個“窗格”,每個窗格顯示不同的文字。后面會介紹怎么對付多個窗 格,現(xiàn)在我們先學會如何關(guān)掉多余的窗格。其實也很簡單:
C-x 1 只保留一個窗格(也就是關(guān)掉其它所有窗格)。
也就是先按 CONTROL-x 然后再按 1。C-x 1 會保留光標所在的窗格,并將其擴大 到整個屏幕,同時關(guān)掉所有其它的窗格。
>> 把光標移到本行然后輸入 C-u 0 C-l。 >> 輸入 C-h k C-f。觀察當一個新窗格出現(xiàn)時當前窗格(用來顯示C-f 命令的文檔)是如何縮小的。
>> 輸入 C-x 1 關(guān)掉文檔窗格。有一系列命令是以 CONTROL-x 開始的,這些命令許多都跟“窗格、文件、緩沖區(qū) 【緩沖區(qū)(buffer)會在后文詳細介紹】”等等諸如此類的東西有關(guān),其中有些 命令可能包含了 2 個、3 個或者 4 個字符。
6?插入與刪除(INSERTING AND DELETING)
插入文字很簡單,直接敲鍵盤就可以了。普通的字符,比如 A、7、* 等等,會 隨著你的輸入而插入。要插入一個換行符,輸入 <Return>(這個鍵在鍵盤上有 時會被標注成“Enter”)。
你可以用 <DEL> 來刪除光標左邊的字符,這個鍵通常被標注為“Backspace”――跟 你在 Emacs 之外的用法應(yīng)該一樣,刪除最后一個輸入的字符。
你的鍵盤上可能有另外一個鍵,標注著 <Delete>,但那個不是我們所說的 <DEL>。
>> 現(xiàn)在就來試試――敲點字,然后按幾下 <DEL> 刪除它們。不用擔心文件被修改,你做什么都沒關(guān)系,這里就是專給你練習用的。
如果一行文字很長、超出了窗格的寬度,顯示不下的部分會在緊鄰的下一行繼續(xù) 顯示。如果你使用的是圖形界面,文本區(qū)域兩邊的狹窄區(qū)域(左右“邊緣”)會出 現(xiàn)小小的轉(zhuǎn)彎箭頭,表明這是某一行的接續(xù)顯示。如果你使用的是文本終端,接 續(xù)顯示由屏幕最右邊一列的一個反斜線來表示。
>> 輸入文字,一直到屏幕的右邊界,然后繼續(xù)。你會看到一個接續(xù)行出現(xiàn)。
>> 用 <DEL> 刪掉一些文字,直到此行長度小于窗格寬度,接續(xù)行就消失了。換行符跟其它字符一樣可以被刪除。兩行中間的換行符被刪除后,這兩行將會合 并成一行。如果合并后的這一行太長,超出了窗格寬度,它就會以一個接續(xù)行來 顯示。
>> 移動光標到某行的開頭并輸入 <DEL>。這時該行將與其前一行一起被合并為一行。
>> 輸入 <Return> 重新插入你剛才刪除的換行符。前面講過,大部分的 Emacs 命令都可以指定重復次數(shù),這其中也包括輸入字符的 命令。重復執(zhí)行輸入字符的命令實際上就是輸入多個相同的字符。
>> 試試 C-u 8 *,這將會插入 ********。好,現(xiàn)在你應(yīng)該已經(jīng)掌握了最基本的的文本插入和修改功能,其實刪除還可以 “以詞為單位”進行,下面是一個關(guān)于“刪除”操作的小結(jié):
<DEL> 刪除光標前的一個字符 C-d 刪除光標后的一個字符M-<DEL> 移除光標前的一個詞 M-d 移除光標后的一個詞C-k 移除從光標到“行尾”間的字符 M-k 移除從光標到“句尾”間的字符【可能你已經(jīng)注意到了“刪除(delete)”和“移除(kill)”的用詞區(qū)別,后 文會有詳細說明。】
注意“<DEL> 和 C-d”還有“M-<DEL> 和 M-d”是根據(jù)前述慣例從 C-f和 M-f 衍生 出來的(其實<DEL>不是控制字符,我們先忽略這一點)。C-k和 M-k 的關(guān)系在 某種程度上與 C-e 和 M-e 一樣――如果把“一行”和“一句”作一個類比的話。
你也可以用一種通用的辦法來移除緩沖區(qū)里的任何一部分:首先把光標移動到你 想要移除的區(qū)域的一端,然后按 C-<SPC>(<SPC>指空格)【注意,C-<SPC> 往 往被中文用戶設(shè)定成輸入法熱鍵,如果這樣,C-<SPC> 就被系統(tǒng)攔截而無法傳遞 給 Emacs 了,在這種情況下可以使用C-@。】,然后將光標移動到你準備移除的 文字的另一端。這個時候, Emacs 會高亮光標和你按下 C-<SPC> 之間的文本。 最后,按下 C-w 。這樣就可以把位于這兩點之間的所有文字移除了。
>> 移動光標到上一段開頭的“你”字。 >> 輸入 C-<SPC> 。Emacs 應(yīng)該會在屏幕的下方顯示一個“Mark set”的消息。 >> 移動光標到第二行中的“端”字。 >> 輸入 C-w,從“你”開始到“端”之前的文字被全部移除。注意,“移除(kill)”和“刪除(delete)”的不同在于被移除的東西可以被重新 插入(在任何位置),而被刪除的就不能使用相同的方法重新插入了(不過可以 通過撤銷一個刪除命令來做到,后文會提到)。【實際上,移除掉的東西雖然看 起來“消失”了,但實際上被 Emacs 記錄了下來,因此還可以找回來;而刪除掉 的東西雖然也可能還在內(nèi)存里,但是已經(jīng)被 Emacs“拋棄”了,所以就找不回來 了。】重新插入被移除的文字稱為“召回(yank)”。一般而言,那些可能消除很 多文字的命令會把消除掉的文字記錄下來(它們被設(shè)定成了“可召回”),而那些 只消除一個字符或者只消除空白的命令就不會記錄被消除的內(nèi)容(自然你也就無 法召回了)。
>> 移動光標到一非空白行的行頭,然后輸入 C-k 移除那一行上的文字。 >> 再次 C-k,你可以看到它移除了跟在那一行后面的換行符。注意,單獨的 C-k 會把一行的內(nèi)容移除,而第二個 C-k 則會移除換行符,并使 其后所有的行都向上移動。C-k 處理數(shù)字參數(shù)的方式很特別,它會把參數(shù)指定的 那么多行連同其后的換行符一起移除,而不僅僅是重復 C-k 而已。比如 C-u 2 C-k 會把兩行以及它們的換行符移除;而如果只是輸入 C-k 兩次顯然不是這個結(jié) 果。
重新插入被移除的文字恢復的動作稱為“召回(yanking)”。(就好像把別人從你身邊 移走的東西又猛力地拉回來。)你可以在你刪除文字的地方召回,也可以在別的 地方召回,還可以多次召回同樣的文字以得到它的多個拷貝。很多其它的編輯器 把移除和召回叫做“剪切”和“粘貼” (詳情可見 Emacs 使用手冊里的術(shù)語表)。
召回的命令是 C-y。它會在光標所在處插入你最后移除的文字。
>> 試試看,輸入 C-y 將文字召回。如果你一次連按了好幾下 C-k,那么所有被移除的行會被存儲在一起,只要一個 C-y 就可以把它們都召回。
>> 在這里試試,連續(xù)按幾次 C-k。現(xiàn)在再來恢復剛剛被我們移除的文字:
>> 按 C-y。然后把光標往下移動幾行,再按一次 C-y。現(xiàn)在你應(yīng)該知道怎么復制文字了。
C-y 可以召回最近一次移除的內(nèi)容,那如何召回前幾次移除的內(nèi)容呢?它們當然 沒有丟,你可以用 M-y 來召回它們。在用 C-y 召回最近移除的文字之后,緊接 著再按 M-y 就可以召回再前一次被移除的內(nèi)容,再按一次 M-y 又可以召回再上 一次的……連續(xù)使用 M-y 直到找到你想要召回的東西,然后什么也不用做,繼續(xù) 編輯就行了。
如果連續(xù)按 M-y 很多次,你可能會回到起始點,也就是最近移除的文字。 【看得出這實際上是一個環(huán)。】
>> 移除一行,移動一下光標,然后再移除另外一行。按 C-y 將第二次移除的那行召回來。緊接著再按 M-y,它將會被第一次移除的那行取代。試著再按幾下 M-y 看看會發(fā)生什么。再繼續(xù),直到第二行被召回來,然后再做個幾次。如果感興趣,你可以試著給 M-y 指定一個正的或負的參數(shù)。7?撤銷(UNDO)
如果你修改了一段文字,又覺得改得不好,可以用 undo 命令進行撤銷:C-/。
通常 C-/ 會消除一個命令所造成的所有改變;如果你在一行中連續(xù)多次地使用 C-/,你會把以前的命令也依次撤銷。
但是有兩個例外: 1) 沒有改變文字的命令不算(包括光標移動命令和滾動命令) 2) 從鍵盤輸入的字符以組為單位――每組最多 20 個字符――來進行處理。 (這是為了減少你在撤銷“插入文字”動作時需要輸入 C-/ 的次數(shù))
>> 用 C-k 將這一行移除,然后輸入 C-/ ,它會再次出現(xiàn)。C-_ 也是撤銷命令;它的作用跟 C-/ 一樣,但是它比較容易多次輸入。在 某些終端上,輸入 C-/ 實際上向 Emacs 發(fā)送的是 C-_ 。 另外, C-x u 和 C-/ 完全一樣,但是按起來有些麻煩。
數(shù)字參數(shù)對于 C-/ 、 C-_ 和 C-x u 的意義是執(zhí)行撤銷的重復次數(shù)。
8?文件(FILE)
想保存工作成果就要記得存盤,否則一旦退出 Emacs 你編輯的文字就會丟失。要 存盤,就要在編輯前“尋找”到一個存盤文件。(這個過程通常也被稱為“訪問” 文件。)
尋找到一個文件意味著你可以在 Emacs 里查看這個文件的內(nèi)容。從許多角度看, 這就等于你在直接編輯這個文件,只是你所做的修改只有在“存盤”的時候才會 被寫入文件。也正因為如此,你可以丟棄一個寫到一半的文件而不必把這個殘缺 文件也保存到計算機上。在存盤的時候,Emacs 會把存盤前的文件重命名保存, 以防你改完之后又想反悔。
在屏幕的下方,你應(yīng)該能夠看到頭部有短線“-”的一行,行首通常是一些諸如“ -:— TUTORIAL.cn”的文字,這些文字代表了你當前正在訪問的文件。比如你現(xiàn) 在正在訪問的文件是對 Emacs 快速指南的一份臨時拷貝,叫做“TUTORIAL.cn”。 每當Emacs 尋找到一個文件,文件名就會出現(xiàn)在這個位置。
尋找文件的命令有一個特點,那就是你必須給出文件名。我們稱這個命令“讀入 了一個參數(shù)”(在這里,這個參數(shù)顯然就是文件名)。在你輸入這條命令之后:
C-x C-f 尋找一個文件Emacs 會提示你輸入文件名。你輸入的文件名會出現(xiàn)在屏幕最底端的一行,這一 行被稱為小緩沖(minibuffer),在小緩沖里你可以使用通常的 Emacs 編輯命令 來編輯文件名。
在小緩沖里輸入文件名(其實輸入其它東西也一樣)時可以用 C-g 取消。
>> 輸入 C-x C-f,然后輸入 C-g這會關(guān)掉小緩沖,同時也會取消使用小緩沖的 C-x C-f 命令。 當然了,你也沒有找任何文件。
用 <Return> 結(jié)束文件名的輸入。之后,小緩沖會消失,C-x C-f 將會去尋找你 指定的文件。小緩沖在 C-x C-f 命令結(jié)束之后也會消失。
文件被顯示在了屏幕上,你可以開始編輯了。存盤用這條命令:
C-x C-s 儲存這個文件這條命令把 Emacs 中的文字存儲到文件中。第一次存盤的時候 Emacs 會將原文 件重命名以備份。重命名的規(guī)則通常是在原文件名之后添加一個“~”字符。 【對許多人來說,這是一個煩人的特性,關(guān)掉文件備份可以用如下命令: M-x customize-variable <Return> make-backup-files <Return>】
存盤結(jié)束后,Emacs 會顯示寫入文件的文件名。你最好養(yǎng)成經(jīng)常存盤的習慣,這 可以減少系統(tǒng)崩潰和死機給你帶來的損失(也可參見下面的“自動保存”一節(jié))。
>> 輸入 C-x C-s TUTORIAL.cn <Return> 。這將會把該指南保存為一個名為 TUTORIAL.cn 的文件,并且在屏幕的下方顯 示一條消息:“Wrote …TUTORIAL.cn”。
你不但可以尋找一個已有的文件來查看或編輯,還可以尋找一個不存在的文件。 實際上這正是 Emacs 創(chuàng)建新文件的方法:找到不存在的新文件。事實上,只有 在存盤的時候,Emacs 才會真正創(chuàng)建這個文件。而在這之后的一切就跟編輯一個 已有文件沒有區(qū)別了。
9?緩沖區(qū)(BUFFER)
你可以用 C-x C-f 找到并打開第二個文件,但第一個文件仍然在 Emacs 中。要 切回第一個文件,一種辦法是再用一次 C-x C-f。這樣,你就可以在 Emacs 中同 時打開多個文件。
Emacs 把每個編輯中的文件都放在一個稱為“緩沖區(qū)(buffer)”的地方。每尋 找到一個文件,Emacs 就在其內(nèi)部開辟一個緩沖區(qū)。用下面的命令可以列出當前 所有的緩沖區(qū):
C-x C-b 列出緩沖區(qū)
>> 現(xiàn)在就試一下 C-x C-b觀察一下緩沖區(qū)是如何被命名的,它很可能跟與其對應(yīng)的文件同名。實際上,一 個 Emacs 窗格里的任何文字都是某個緩沖區(qū)的一部分。
>> 輸入 C-x 1 離開緩沖區(qū)列表不管存在多少緩沖區(qū),任何時候都只能有一個“當前”緩沖區(qū),也就是你正在編 輯的這個。如果你想編輯其它的緩沖區(qū),就必須“切換”過去。上面講過,用 C-x C-f 是一種辦法。不過還有一個更簡單的辦法,那就是用 C-x b。用這條命 令,你必須輸入緩沖區(qū)的名稱。
>> 通過輸入 C-x C-f foo <Return> 創(chuàng)建一個名為“foo”的文件。然后輸入 C-x b TUTORIAL.cn <Return> 回到這里。
大多數(shù)情況下,緩沖區(qū)與跟其對應(yīng)的文件是同名的(不包括目錄名),不過這也 不是絕對的。用 C-x C-b 得到的緩沖區(qū)列表總是顯示緩沖區(qū)名。
緩沖區(qū)未必有對應(yīng)文件。顯示緩沖區(qū)列表的緩沖區(qū)(叫做“*Buffer List*”)就 是這樣。這個 TUTORIAL.cn 緩沖區(qū)起初沒有對應(yīng)的文件,但是現(xiàn)在有了,因為 在前一節(jié)你輸入了 C-x C-s , 將它保存成了一個文件。
“*Messages*”緩沖區(qū)也沒有對應(yīng)文件,這個緩沖區(qū)里存放的都是在 Emacs 底部 出現(xiàn)的消息。
>> 輸入 C-x b *Messages* <Return> 瞅瞅消息緩沖區(qū)里都有什么東西。然后再輸入 C-x b TUTORIAL.cn <Return> 回到這里。
如果你對某個文件做了些修改,然后切換到另一個文件,這個動作并不會幫你把 前一個文件存盤。對第一個文件的修改仍然僅存在于 Emacs 中,也就是在它對 應(yīng)的緩沖區(qū)里。并且,對第二個文件的修改也不會影響到第一個文件。這很有用, 但也意味著你需要一個簡便的辦法來保存第一個文件的緩沖區(qū)。先切換回那個緩 沖區(qū),再用 C-x C-s 存盤,太麻煩了。你需要一個更簡便的方法,而 Emacs 已 經(jīng)為你準備好了:
C-x s 保存多個緩沖區(qū)C-x s 會找出所有已被修改但尚未存盤的緩沖區(qū),然后向你逐個詢問:是否需要 存盤?
>> 插入一行文字,然后輸入 C-x s。它應(yīng)該會問你,是否要儲存名為 TUTORIAL.cn 的緩沖區(qū)? 按“y”告訴它你想存盤。
10?命令集擴展(EXTENDING THE COMMAND SET)
Emacs 的命令就像天上的星星,數(shù)也數(shù)不清。把它們都對應(yīng)到 CONTROL 和 META 組合鍵上顯然是不可能的。Emacs 用擴展(eXtend)命令來解決這個問題,擴展 命令有兩種風格:
C-x 字符擴展。 C-x 之后輸入另一個字符或者組合鍵。 M-x 命令名擴展。M-x 之后輸入一個命令名。很多擴展命令都相當有用,雖然與你已經(jīng)學過的命令比起來,他們可能不那么常 用。我們早已經(jīng)見過一些擴展命令了,比如用 C-x C-f 尋找文件和用 C-x C-s 保存文件;退出 Emacs 用的 C-x C-c 也是擴展命令。(不用擔心退出 Emacs 會 給你帶來什么損失,Emacs 會在退出之前提醒你存盤的。)
如果你使用圖形界面,你不需要任何特殊的命令來切換 Emacs 和其他應(yīng)用程序。 你可以使用鼠標或者窗口管理器的命令。然而,如果你使用只能同時顯示一個應(yīng) 用程序的文本終端,你需要“掛起” Emacs ,以切換到其他的應(yīng)用程序。
C-z 可以暫時離開 Emacs――當然,你還可以再回來。在允許 C-z 的系統(tǒng)中,C-z 會把 Emacs“掛起”,也就是說,它會回到 shell但不殺死 Emacs 的進程。在常 用的 shell 中,通常可以用“fg”或者“%emacs”命令再次回到 Emacs 中。
你最好在打算退出登陸的時候再用 C-x C-c。在把 Emacs 當做一個臨時的編輯 器的時候(比如被一個郵件處理程序調(diào)用),也可以用 C-x C-c 退出。
C-x 的擴展命令有很多,下面列出的是你已經(jīng)學過的:
C-x C-f 尋找文件。 C-x C-s 保存文件。 C-x C-b 列出緩沖區(qū)。 C-x C-c 離開 Emacs。 C-x 1 關(guān)掉其它所有窗格,只保留一個。 C-x u 撤銷。用命令名擴展的命令通常并不常用,或只用在部分模式下。比如 replace-string(字符串替換)這個命令,它會把一個字符串替換成另一個。在 輸入 M-x 之后,Emacs 會在屏幕底端向你詢問并等待你輸入命令名。如果你想 輸入“replace-string”,其實只需要敲“repl s<TAB>”就行了,Emacs 會幫你自 動補齊。輸入完之后按 <Return> 提交。
字符串替換命令需要兩個參數(shù)――被替換的字符串和用來替換它的字符串。每個 參數(shù)的輸入都以換行符來結(jié)束。
>> 將光標移到本行下面第二行的空白處,然后輸入M-x repl s<Return>changed<Return>altered<Return>。
【以下保留一行原文,以應(yīng)練習之需:】 Notice how this line has changed: you've replaced…
請注意這一行的變化:在光標之后的范圍內(nèi),你已經(jīng)將“changed”這個詞――不 論它在哪里出現(xiàn)――全部用“altered”替換掉了。
11?自動保存(AUTO SAVE)
如果你已經(jīng)修改了一個文件,但是還沒來得及存盤你的計算機就罷工了,那么你 所做的修改就很可能會丟失。為了避免這樣的不幸發(fā)生,Emacs 會定期將正在編 輯的文件寫入一個“自動保存”文件中。自動保存文件的文件名的頭尾各有一個 “#”字符,比如你正在編輯的文件叫“hello.c”,那么它的自動保存文件就叫 “#hello.c#”。這個文件會在正常存盤之后被 Emacs 刪除。
所以,假如不幸真的發(fā)生了,你大可以從容地打開原來的文件(注意不是自動保 存文件)然后輸入 M-x recover file <Return> 來恢復你的自動保存文件。在 提示確認的時候,輸入 yes<Return>。
12?回顯區(qū)(ECHO AREA)
如果 Emacs 發(fā)現(xiàn)你輸入多字符命令的節(jié)奏很慢,它會在窗格的下方稱為“回顯區(qū)” 的地方給你提示。回顯區(qū)位于屏幕的最下面一行。
13?狀態(tài)欄(MODE LINE)
位于回顯區(qū)正上方的一行被稱為“狀態(tài)欄”。狀態(tài)欄上會顯示一些信息,比如:
-:**- TUTORIAL.cn 63% L749 (Fundamental)
狀態(tài)欄顯示了 Emacs 的狀態(tài)和你正在編輯的文字的一些信息。
你應(yīng)該知道文件名的意思吧?就是你找到的那個文件嘛。-NN%– 顯示的是光標在 全文中的位置。如果位于文件的開頭,那么就顯示 –Top– 而不是 –00%–;如 果位于文件的末尾,就顯示 –Bot–。如果文件很小,一屏就足以顯示全部內(nèi)容, 那么狀態(tài)欄會顯示 –All–。
“L” 和其后的數(shù)字給出了光標所在行的行號。
最開頭的星號(*)表示你已經(jīng)對文字做過改動。剛剛打開的文件肯定沒有被改動 過,所以狀態(tài)欄上顯示的不是星號而是短線(-)。
狀態(tài)欄上小括號里的內(nèi)容告訴你當前正在使用的編輯模式。缺省的模式是 Fundamental,就是你現(xiàn)在正在使用的這個。它是一種“主模式”。
Emacs 的主模式林林總總。有用來編輯程序代碼的――比如 Lisp 模式;也有用 來編輯各種自然語言文本的――比如 Text 模式。任何情況下只能應(yīng)用一個主模 式,其名稱會顯示在狀態(tài)欄上,也就是現(xiàn)在顯示“Fundamental”的地方。
主模式通常會改變一些命令的行為。比方說,不管編輯什么語言的程序代碼,你 都可以用一個相同的命令來添加注釋。但是在不同的語言中注釋的語法往往是不 同的,這時不同的主模式就會用各自不同的語法規(guī)則來添加注釋。主模式都是可 以用 M-x 啟動的擴展命令,M-x fundamental-mode 就可以切換到 Fundamental 模式。
編輯自然語言文本――比如現(xiàn)在――應(yīng)該用 Text 模式。
>> 輸入 M-x text-mode <Return>。別擔心,什么都沒變。不過細心一些可以發(fā)現(xiàn),M-f 和 M-b 現(xiàn)在把單引號(') 視為詞的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都將單引號 視為分隔單詞的符號。
主模式通常都會搞一些類似的小動作,因為很多命令其實完成的是“相同的工 作”,只是在不同環(huán)境下會有不同的工作方式而已。【所謂“求同存異”,在 Emacs 里得到了很好的體現(xiàn)】
用 C-h m 可以查看當前主模式的文檔。
>> 把光標移動到下一行。 >> 用 C-l C-l 將本行帶到屏幕的最上方。 >> 輸入 C-h m,看看 Text 模式與 Fundamental 模式有哪些不同。 >> 輸入 C-x 1 關(guān)掉文檔窗格。主模式之所以稱之為“主(major)”模式,是因為同時還有“輔模式”(minor mode)存在。輔模式并不能替代主模式,而是提供一些輔助的功能。每個輔模式 都可以獨立地開啟和關(guān)閉,跟其它輔模式無關(guān),跟主模式也無關(guān)。所以你可以不 使用輔模式,也可以只使用一個或同時使用多個輔模式。
有一個叫做自動折行(Auto Fill)的輔模式很有用,特別是在編輯自然語言文本 的時候。啟用自動折行后,Emacs 會在你打字超出一行邊界時自動替你換行。
用 M-x auto-fill-mode <Return> 啟動自動折行模式。再用一次這條命令,自 動折行模式會被關(guān)閉。也就是說,如果自動折行模式?jīng)]有被開啟,這個命令會開 啟它;如果已經(jīng)開啟了,這個命令會關(guān)閉它。所以我們說,這個命令可以用來 “開關(guān)(toggle)”模式。
>> 現(xiàn)在輸入 M-x auto-fill-mode <Return>。然后隨便敲點什么,直到你看到它分成兩行。你必須敲一些空格,因為 Auto Fill 只在空白處進行斷行。 【輸入空格對英文來說是必須的,而對中文則不必。】
行邊界通常被設(shè)定為 70 個字符【這里指英文字符】,你可以用 C-x f 命令配合 數(shù)字參數(shù)來重新設(shè)定它。
>> 輸入 C-x f 并傳遞參數(shù) 20: C-u 2 0 C-x f。然后輸入一些文字,觀察 Emacs 的自動折行動作 最后再用 C-x f 將邊界設(shè)回 70。
如果你在段落的中間做了一些修改,那么自動折行模式不會替你把整個段落重新 折行,你需要用 M-q 手動折行。注意,光標必須位于你需要折行的那一段里。
>> 移動光標到前一段中,然后輸入 M-q。14?搜索(SEARCHING)
Emacs 可以向前或向后搜索字符串(“字符串”指的是一組連續(xù)的字符)。搜索命 令是一個移動光標的命令:搜索成功后,光標會停留在搜索目標出現(xiàn)的地方。
Emacs 的搜索命令是“漸進的(incremental)”。意思是搜索與輸入同時進行: 你在鍵盤上一字一句地輸入搜索詞的過程中,Emacs 就已經(jīng)開始替你搜索了。
C-s 是向前搜索,C-r 是向后搜索。不過手別這么快!別著急試。
在按下 C-s 之后,回顯區(qū)里會有“I-search”字樣出現(xiàn),表明目前 Emacs 正處 于“漸進搜索”狀態(tài),并等待你輸入搜索字串。按 <Return> 可以結(jié)束搜索。
>> 輸入 C-s 開始一個搜索。注意敲慢一點,一次輸入一個字符。慢慢輸入“cursor”這個詞,每敲一個字都停頓一下并觀察光標。 現(xiàn)在你應(yīng)該已曾經(jīng)找到“cursor”這個詞了。
>> 再按一次 C-s,搜索下一個“cursor”出現(xiàn)的位置。 >> 現(xiàn)在按四次 <DEL> ,看看光標是如何移動的。 >> 敲 <Return> 結(jié)束搜索。看仔細了么?在一次漸進式搜索中,Emacs 會嘗試跳到搜索目標出現(xiàn)的位置。要 跳到下一個命中位置,就再按一次 C-s。如果找不到目標,Emacs 會發(fā)出“嗶” 的一聲,告訴你搜索失敗。在整個過程中,都可以用 C-g 來終止搜索。【你會發(fā) 現(xiàn) C-g 會讓光標回到搜索開始的位置,而 <Return> 則讓光標留在搜索結(jié)果上, 這是很有用的功能。】
在漸進式搜索中,按 <DEL> 會“撤回”到最近一次搜索的命中位置。如果之前沒 有一個命中, <DEL> 會抹去搜索字符串中的最后一個字符。比如你已經(jīng)輸入了 “c”,光標就停在“c”第一次出現(xiàn)的位置,再輸入“u”,光標停在“cu”第一次出現(xiàn) 的位置,這時再按 <DEL> ,“u”就從搜索字串中消失了,然后光標會回到“c”第 一次出現(xiàn)的位置。
另外,如果你在搜索的時候輸入了 control 或者 meta 組合鍵的話,搜索可能會 結(jié)束。(也有例外,比如 C-s 和 C-r 這些用于搜索的命令。)
前面說的都是“向下”搜索,如果想“向上”搜索,可以用 C-r。C-r 與 C-s 相比除了搜索方向相反之外,其余的操作都一樣。
15?多窗格(MULTIPLE WINDOWS)
Emacs 的迷人之處很多,能夠在屏幕上同時顯示多個窗格就是其中之一。
>> 移動光標到這一行,然后輸入 C-l C-l。 >> 現(xiàn)在輸入 C-x 2,它會將屏幕劃分成兩個窗格。這兩個窗格里顯示的都是本篇快速指南,而光標則停留在上方的窗格里。
>> 試試用 C-M-v 滾動下方的窗格。(如果你并沒有 META 鍵,用 ESC C-v 也可以。) 【向上滾動是 C-M-S-v,也就是同時按住 CONTROL、META 和 SHIFT 再按 v】
>> 輸入 C-x o(“o”指的是“其它(other)”),將光標轉(zhuǎn)移到下方的窗格。
>> 在下方的窗格中,用 C-v 和 M-v 來滾動。同時繼續(xù)在上方的窗格里閱讀這些指導。
>> 再輸入 C-x o 將光標移回到上方的窗格里。光標會回到它在上方窗格中原本所在的位置。
連續(xù)使用 C-x o 可以遍歷所有窗格。“被選中的窗格”,也就是絕大多數(shù)的編輯 操作所發(fā)生的地方,是在你不打字時閃爍光標的那個窗格。其他的窗格有它們自 己的光標位置; 如果你在圖形界面下運行 Emacs ,這些光標是鏤空的長方形。
當你在一個窗格中編輯,但用另一個窗格作為參考的時候,C-M-v 是很有用的命 令。無需離開被選中的窗格,你就可以用 C-M-v 命令滾動另外一個窗格中的文 字。【比如翻譯和校對就很適合用這種方式進行。】
C-M-v 是一個 CONTROL-META 組合鍵。如果你有 META (或 Alt)鍵的話,可以 同時按住CONTROL 和 META 鍵并輸入 v。CONTROL 和 META 鍵先按哪個都可以, 因為它們只是用來“修飾(modify)”你輸入的字符的。
如果你并沒有 META 鍵,你也可以用 ESC 來代替,不過這樣的話就要注意按鍵順 序了:你必須先輸入 ESC ,然后再輸入 CONTROL-v。CONTROL-ESC v 是沒用的, 因為 ESC 本身是一個字符鍵,而不是一個修飾鍵(modifier key)。
>> (在上方窗格里)輸入 C-x 1 關(guān)掉下方窗格。(如果你在下方的窗格里輸入 C-x 1,那么就會關(guān)掉上方的窗格。你可以把這個 命令看成是“只保留一個窗格”――就是我們正在編輯的這個。)
不同的窗格可以顯示不同的緩沖區(qū)。如果你在一個窗格里用 C-x C-f 打開了一個 文件,另一個窗格并不會發(fā)生什么變化。任何一個窗格里都可以用來打開文件。
用下面的方法可以在一個新開窗格里打開文件:
>> 輸入 C-x 4 C-f,緊跟著輸入一個文件名,再用 <Return> 結(jié)束。可以看到你指定的文件出現(xiàn)在下方的窗格中,同時光標也跳到了那里。
>> 輸入 C-x o 回到上方的窗格,然后再用 C-x 1 關(guān)掉下方窗格。16?多窗口(MULTIPLE FRAMES)
Emacs 可以創(chuàng)建多個窗口。窗口由許多窗格以及菜單、滾動條、回顯區(qū)等組成。 在圖形界面下,多個窗口可以同時顯示出來。在文本終端中,只能同時顯示一個 窗口。
>> 輸入 M-x make-frame <Return>。可以看到一個新的窗口出現(xiàn)在了你的屏幕上。
你可以在新的窗口里做最初的窗口里可以做的任何事情。第一個窗口沒有什么特 別的。
>> 輸入 M-x delete-frame <Return>.這個命令將會關(guān)閉選中的窗口。
你也可以通過圖形系統(tǒng)來關(guān)閉某個窗口(通常是在窗口上面的某個角落里的一個 “X”按鈕)。如果你關(guān)閉的是 Emacs 進程的最后一個窗口, Emacs 將會退出。
17?遞歸編輯(RECURSIVE EDITING LEVELS)
有時候你會進入所謂的“遞歸編輯”。遞歸編輯狀態(tài)由位于狀態(tài)欄的方括號所指 示,其中包含了用小括號來指明的模式名稱。比如說,你有時可能會看到 [(Fundamental)],而不是 (Fundamental)。【比如在用 M-% 進行交互式替換的 時候你又用了 C-s 進行搜索,這時替換模式并沒有結(jié)束,但你又進入了搜索模式, 這就是所謂的遞歸編輯。】
離開遞歸編輯可以用 ESC ESC ESC。這是一個最通用的“離開”命令,你甚至可 以使用它來關(guān)掉多余的窗格,或者離開小緩沖。
>> 輸入 M-x 進入小緩沖;然后輸入 ESC ESC ESC 離開。你不能用 C-g 退出遞歸編輯,因為 C-g 的作用是取消“本層遞歸編輯之內(nèi)”的 命令和其參數(shù)(arguments)。
18?獲得更多幫助(GETTING MORE HELP)
本快速指南的目的僅僅是幫助你在 Emacs 的海洋里下水,不至于束手無策望洋興 嘆。有關(guān) Emacs 的話題可謂汗牛充棟,這里自然是難盡萬一。不過 Emacs 很理 解你求知若渴的心情,因為它提供的強大功能實在是太多了。為此,Emacs 提供 了一些命令來查看 Emacs 的命令文檔,這些命令都以 CONTROL-h 開頭,這個字 符也因此被稱為“幫助(Help)字符”。
要使用幫助(Help)功能,請先輸入 C-h,然后再輸入一個字符以說明你需要什 么幫助。如果你連自己到底需要什么幫助都不知道,那么就輸入 C-h ?,Emacs 會告訴你它能提供了哪些幫助。如果你按了 C-h 又想反悔,可以用 C-g 取消。
(如果你按 C-h 之后沒有任何幫助信息顯示出來,那么試試 F1 鍵或者 M-x help <Return> 。)
最基本的幫助功能是 C-h c。輸入 C-h c 之后再輸入一個組合鍵,Emacs 會給出 這個命令的簡要說明。
>> 輸入 C-h c C-p。顯示的消息應(yīng)該會是這樣:
C-p runs the command previous-line這條消息顯示了 C-p 命令對應(yīng)的函數(shù)名。命令的功能由函數(shù)完成,所以函數(shù)名 本身也可以被看成是最簡單的文檔――至少對于你已經(jīng)學過的命令來說,它們的函 數(shù)名足以解釋它們的功能了。
多字符命令一樣可以用 C-h c 來查看。
想得到更多的信息,請把 C-h c 換成 C-h k 試試看。
>> 輸入 C-h k C-p。上面的命令會新打開一個 Emacs 窗格以顯示函數(shù)的名稱及其文檔。你讀完之后可 以用 C-x 1 關(guān)掉這個幫助窗格。當然你并不需要立即這樣做,你完全可以先在編 輯窗格里做點別的事情,然后再關(guān)掉幫助窗格。
還有一些其它有用的 C-h 命令:
C-h f 解釋一個函數(shù)。需要輸入函數(shù)名。 >> 試試看,輸入 C-h f previous-line <Return>。Emacs 會給出它所知道的所有有關(guān)“實現(xiàn) C-p 命令功能的函數(shù)”的信息。
C-h v 用來顯示 Emacs 變量的文檔。Emacs 變量可以被用來“定制 Emacs 的行 為”。同樣,你需要輸入變量的名稱。
C-h a 相關(guān)命令搜索(Command Apropos)。 輸入一個關(guān)鍵詞然后 Emacs 會列出所有命令名中包含此關(guān)鍵詞 的命令。這些命令全都可以用 M-x 來啟動。對于某些命令來說, 相關(guān)命令搜索還會列出一兩個組合鍵。
>> 輸入 C-h a file <Return>。Emacs 會在另一個窗格里顯示一個 M-x 命令列表,這個列表包含了所有名稱中含 有“file”的命令。你可以看到像“C-x C-f”這樣的組合鍵顯示在“find-file” 這樣的命令名的旁邊。
>> 用 C-M-v 來回滾動 help 窗格,多試幾次。 >> 輸入 C-x 1 來刪除 help 窗格。C-h i 閱讀手冊(也就是通常講的 Info)。 這個命令會打開一個稱為“*info*”的特殊緩沖區(qū),在那里, 你可以閱讀安裝在系統(tǒng)里的軟件包使用手冊。要讀 Emacs 的使 用手冊,按 m emacs <Return> 就可以了。如果你之前從沒用 過 Info 系統(tǒng),那么請按“?”,Emacs 會帶你進入 Info 的使 用指南。在看完本快速指南之后,Emacs Info 會成為你的主要 參考文檔。
19?更多精彩(MORE FEATURES)
想學習更多的使用技巧,Emacs 使用手冊(manual)值得一讀。你可以讀紙版的 書,也可以在 Emacs 中讀(可以從 Help 菜單進入或者按 C-h r)。提兩個你 可能會很感興趣的功能吧,一個是可以幫你少敲鍵盤的 completion(自動補全), 另一個是方便文件處理的 dired(目錄編輯)。
Completion 可以替你節(jié)省不必要的鍵盤輸入。比如說你想切換到?Message?緩 沖區(qū),你就可以用 C-x b *M<Tab> 來完成。只要 Emacs 能夠根據(jù)你已經(jīng)輸入的 文字確定你想要輸入的內(nèi)容,它就會自動幫你補齊。Completion 也可用于命令 名和文件名。有關(guān) Completion 的詳細說明可以在 Emacs Info 中的 “Completion”一節(jié)里找到。
Dired 能夠在一個緩沖區(qū)里列出一個目錄下的所有文件(可以選擇是否也列出子 目錄),然后你可以在這個文件列表上完成對文件的移動、訪問、重命名或刪除 等等操作。Dired 也在 Emacs 使用手冊中有詳細介紹,參見“Dired”一節(jié)。
Emacs 使用手冊里還有許許多多的精彩功能等著你來了解。
20?總結(jié)(CONCLUSION)
要退出 Emacs 請用 C-x C-c。
本文完全是為零起點新手所寫的起步教程。如果你覺得哪里還看不明白,千萬不 要懷疑自己,那一定是我們沒有寫好。我們永遠歡迎你的不滿和抱怨。
21?翻譯(TRANSLATION)
翻譯:孫一江 <sunyijiang@gmail.com> 維護:薛富僑 <xfq.free@gmail.com> 校對:水木社區(qū)(www.newsmth.net)Emacs 板眾多網(wǎng)友及眾多 Emacs 中文用戶
Emacs 快速指南(Tutorial)早有兩個劉昭宏的中文譯本,繁簡各一。其簡體版本 (TUTORIAL.cn)基本由繁體版本(TUTORIAL.zh)經(jīng)詞語替換而得。然而繁簡中文 不僅在用詞習慣上有所不同,更有諸多表達方式與句法方面的差異,因此一直以來 用戶使用 TUTORIAL.cn 都會略覺生硬和晦澀。這次重新翻譯 TUTORIAL.cn 的動機 正是源于這種體驗,希望我們的工作能夠讓本文更好地發(fā)揮其作用。TUTORIAL.zh 的譯文質(zhì)量很高,在翻譯過程中給予過我們許多借鑒和參考,在此對劉昭宏的工作 表示感謝。
翻譯過程中最大的挑戰(zhàn)莫過于術(shù)語譯詞的選擇了。經(jīng)過水木社區(qū) Emacs 板熱心 網(wǎng)友小范圍內(nèi)的討論,我們選擇了現(xiàn)在的譯法。用戶的廣泛參與是自由軟件生命 力的源泉,所以如果你有任何建議、勘誤或想法,請用你喜歡的方式向我們提出。 你可以通過電子郵件直接聯(lián)系維護者,也可以放到 GNU Emacs 的開發(fā)郵件列表 或者水木社區(qū)的 Emacs 板上進行討論。
下面列出主要術(shù)語的譯詞對照,并給出注釋說明:
command 命令 cursor 光標 scrolling 滾動 numeric argument 數(shù)字參數(shù) window 窗格 [1] insert 插入 delete 刪除 [2] kill 移除 [2] yank 召回 [2] undo 撤銷 file 文件 buffer 緩沖區(qū) minibuffer 小緩沖 echo area 回顯區(qū) mode line 狀態(tài)欄 search 搜索 incremental search 漸進式搜索 [3]對于其他沒有提到的術(shù)語,讀者可以參考 Emacs 使用手冊里的術(shù)語表。
22?版權(quán)聲明(COPYING)
This tutorial descends from a long line of Emacs tutorials starting with the one written by Stuart Cracraft for the original Emacs.
This version of the tutorial is a part of GNU Emacs. It is copyrighted and comes with permission to distribute copies on certain conditions:
Copyright (C) 1985, 1996, 1998, 2001-2014 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see?http://www.gnu.org/licenses/.
Please read the file COPYING and then do give copies of GNU Emacs to your friends. Help stamp out software obstructionism ("ownership") by using, writing, and sharing free software!
【下面為版權(quán)聲明的譯文,僅供參考。實際法律效力以英文原文為準。】
本快速指南沿襲自歷史悠久的 Emacs 快速指南,可上溯至 Stuart Cracraft 為最 初的 Emacs 所作的版本。
本篇指南是 GNU Emacs 的一部分,并允許在下列條件的約束下發(fā)行其拷貝:
Copyright (C) 1985, 1996, 1998, 2001-2014 Free Software Foundation, Inc.
本文件為 GNU Emacs 的一部分。
GNU Emacs 為自由軟件;您可依據(jù)自由軟件基金會所發(fā)表的GNU通用公共授權(quán) 條款,對本程序再次發(fā)布和/或修改;無論您依據(jù)的是本授權(quán)的第三版,或 (您可選的)任一日后發(fā)行的版本。
GNU Emacs 是基于使用目的而加以發(fā)布,然而不負任何擔保責任;亦無對適 售性或特定目的適用性所為的默示性擔保。詳情請參照GNU通用公共授權(quán)。
您應(yīng)已收到附隨于 GNU Emacs 的GNU通用公共授權(quán)的副本;如果沒有,請參照?http://www.gnu.org/licenses/.
敬請閱讀文件“COPYING”,然后向你的朋友們分發(fā) GNU Emacs 拷貝。讓我們以使 用、編寫和分享自由軟件的實際行動來共同祛除軟件障礙主義(所謂的“所有 權(quán)”)!
Author: 盧小友
Created: 2015-04-27 周一 21:05
Website:luxiaoyou.com?(About)
Sina Weibo:http://weibo.com/yougelu
分類:?Emacs
總結(jié)
以上是生活随笔為你收集整理的Emacs 快速指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将函数实现放在头文件中
- 下一篇: 怎么让电脑变成无线路由器