Emacs 快速指南 - 原生中文手冊

Emacs 快速指南

Emacs 快速指南.(查看版權聲明請至本文末尾)redis

【注意:位於【】之間的內容是譯註,好比本行,下同。】shell

Emacs 鍵盤命令一般包含 CONTROL 鍵(有時候以 CTRL 或 CTL 來標示)和 META 鍵(有時候用 EDIT 或 ALT 來標示)。爲了不每次都要寫出全名,咱們 約定使用下述縮寫:c#

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(兩個連續的組合鍵)。 要退出一個正在運行中的命令,請用 C-g。 下文中左邊頂行的「: >>」字樣用來提示你嘗試鍵盤命令。好比:安全

[本頁當中特地留出一些空白是出於教學目的,請繼續日後閱讀]編輯器

>>  如今輸入 C-v (查看下一屏文字)移動到下一屏。

(別緊張,在輸入字符 v 的同時注意要按住 CONTROL 鍵) 從如今開始,每讀完當前一屏你都須要這樣作一次。函數

值得注意的是,當你從上一屏滾到下一屏時,中間會有兩行的重複;這樣作是爲 了維持滾屏的連續性,方便你順暢、連續地閱讀。post

用編輯器,開門第一件事就是學會在文字中移動。你已經知道了 C-v 能夠向下移 動一屏,要往上移,請用 M-v (也就是按住 META 鍵,而後輸入v,若是你沒有 META、EDIT 或 ALT 鍵那麼就先按 <ESC> 再按 v)。學習

>>  試試 M-v,而後再試試 C-v,來回遛幾回。

1 小結(SUMMARY)


如下命令在翻頁瀏覽時至關有用:this

C-v     向前移動一屏
M-v     向後移動一屏
C-l     重繪屏幕,並將光標所在行置於屏幕的中央
        (注意是 CONTROL-L,不是 CONTROL-1)
>> 找到光標,留意其附近的文字,而後輸入 C-l。

找找光標在哪裏,你會發現其附近的文字與以前相同,位置卻變爲屏幕的中心。 若是你再次輸入 C-l ,附近的文字將移動到屏幕的頂端。再次輸入 C-l , 文字將移動到底端。spa

若是你的鍵盤上有 PageUp 和 PageDn,也能夠用這兩個鍵來滾屏。不過使用 C-v 和 M-v 的效率要更高一些。

2 基本的光標控制(BASIC CURSOR CONTROL)


整屏的移動頗有用,可是如何在文字中精肯定位呢?

有幾種方式能夠選擇。用方向鍵固然能夠,不過更有效率的方法是保持雙手位於 主鍵盤區,而後使用 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 命令的行爲。

每行文字都以一個「換行符」結束,「換行符」把行與行區分開來。(一般狀況下, 一個文件的最後一行會有一個換行符,可是 Emacs 不強制要求這一點。)

>> 在一行的行頭輸入 C-b。

光標應該會移動到前一行的行尾,由於光標在回退過程當中越過了換行符。

一樣 C-f 也能夠像 C-b 同樣越過換行符。

>> 連按幾回 C-b,感覺一下光標的移動。

而後按幾回 C-f 回到本行的行尾。 再按一次 C-f,光標會移動到下一行。

當你移動光標穿越屏幕的上下邊界時,在邊界外的文字會移動到屏幕內,這稱爲 「滾動」(scrolling)。滾動使得光標能夠被移動到文字中的任何位置,而且還 不會讓光標跑到屏幕外邊去。

>> 用 C-n 將光標下移,一直越過屏幕邊界,同時觀察發生了什麼變化。

若是你嫌一個字符一個字符地挪光標太慢,你還能夠一個詞一個詞地跳。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 在不一樣位置上所表現出來的不一樣行爲。

請注意 C-f 、C-b 和 M-f 、M-b 兩對之間的類比關係。一般的慣例是:META 系 列組合鍵用來操做「由語言定義的單位(好比詞、句子、段落)」,而 CONTROL 系列組合鍵用來操做「與語言無關的基本單位(好比字符、行等等)」。

相似的慣例在「行」與「句子」之間也一樣適用:C-a 和 C-e 能夠將光標移動到 「一行」的頭部和尾部;而 M-a 和 M-e 則將光標移動到「一句」的頭部和尾部。

>> 按兩次 C-a,再按兩次 C-e。

按兩次 M-a,再按兩次 M-e。

想想爲何重複的 C-a 命令會沒有做用,而重複的 M-a 命令則會讓光標不斷 地回退到上一個句子。雖然這個類比規律並不嚴格,可是很天然。

光標停留的位置也能夠稱做「點位」(point)。或者乾脆說,光標指示出了屏幕 上「點位」在文本中的位置。

這裏對簡單的光標移動命令作一個總結,其中也包括了整詞和整句的移動:

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)來輸入,因此在這 些鍵盤上你應該用 Shift 鍵來輸入 M-<,若是不按 Shift 鍵,你輸入的會是 M-comma(META 逗號)。

>> 試一試 M-< ,移到本快速指南的最開始。

而後再按幾回 C-v 回到這裏。

>> 試一試 M-> ,移到本快速指南的最末尾。

而後再按幾回 M-v 回到這裏。

若是你的鍵盤上有方向鍵的話,也能夠用它們來移動光標。不過咱們有三個理由 推薦你學習 C-b 、C-f 、C-n 、和 C-p:(1)它們在任何鍵盤上都能用。(2) 當你熟練使用 Emacs 以後,你會發現用這些組合鍵比用方向鍵要快得多,由於你 的手不須要離開打字區。(3)一旦你習慣了使用這些組合鍵,你也能夠很容易地 適應其它更高級的光標移動命令。

大部分的 Emacs 命令接受數字參數,而且對於多數命令而言,這些數字參數的做 用是指定命令的重複次數。爲一個命令指定數字參數(也就是重複次數)的方法 是:先輸入 C-u,而後輸入數字做爲參數,最後再輸入命令。若是你有META (或 EDIT 或 ALT)鍵,那麼還有另外一種辦法:按住 META 鍵不放,而後輸入數字。不 過咱們仍是建議你用 C-u,由於它在任何終端機上都能用。這種數字參數也稱爲 「前綴參數」,意思是說這個參數是先於使用它的命令而輸入的。

舉例來講, C-u 8 C-f 會向前移動 8 個字符。

>> 爲 C-n 或者 C-p 指定一個數字參數,這樣你能夠只用一個命令就把光標移動

到本行的附近。

雖然大部分命令把數字參數解釋爲其重複次數,可是也有些命令例外,它們將數 字參數另作它用。好比有些命令(咱們目前還沒學到)僅僅將前綴參數做爲一個 標誌――只要給出有一個前綴參數,無論其值爲什麼,它都會改變命令的功能。

而 C-v 和 M-v 則屬於另外一種類型的例外。當給定一個參數時,它們將滾動你指 定的「行數」,而不是「屏數」。舉例來講,C-u 8 C-v 將文本向下滾動 8 行。

>> 如今試試看,輸入 C-u 8 C-v。

這個命令應該已經將文字向上滾動了 8 行。若是你想將它再次地向下滾動,你可 以給定一個參數而後執行 M-v。

若是你正在使用圖形界面,好比 X 或者微軟的 Windows,那麼在 Emacs窗 口的一邊應該有一個長方形的區域叫「滾動條」。你能夠用鼠標操縱滾動條來滾動 文字。

若是你的鼠標有滾輪的話,你也可使用滾輪來滾動。

3 若是 EMACS 失去響應(IF EMACS STOPS RESPONDING)


若是 Emacs 對你的命令失去響應,你能夠用 C-g 來安全地終止這條命令。C-g 也能夠終止一條執行太久的命令。

C-g 還能夠取消數字參數和只輸入到一半的命令。

>> 輸入 C-u 100 設定一個值爲 100 的數字參數,而後按 C-g。

如今再按 C-f,光標應該只會移動一個字符,由於你已經用 C-g 取消了參數。

若是你不當心按了一下 <ESC>,你也能夠用 C-g 來取消它。 【這個說法彷佛有問題,由於按照這個按鍵順序輸入的應該是 C-M-g。 取消 <ESC> 的正確作法是再連按兩次 <ESC>。】

4 被禁用的命令(DISABLED COMMANDS)


有一些 Emacs 命令被「禁用」了,以免初學者在不瞭解其確切功能的狀況下誤 用而形成麻煩。

若是你用到了一個被禁用的命令,Emacs 會顯示一個提示消息,告訴你這個命令 究竟是幹什麼的,詢問你是否要繼續,並在獲得你的確定以後再執行這命令。

若是你真的想用這條命令,在 Emacs 詢問你的時候應該按空格。通常來講,若是 你不想用,就按「n」。

>> 試試 C-x C-l (這是一個被禁用的命令)

而後用 n 來回答詢問。

5 窗格(WINDOWS)


Emacs 能夠有多個「窗格」,每一個窗格顯示不一樣的文字。後面會介紹怎麼對付多個窗 格,如今咱們先學會如何關掉多餘的窗格。其實也很簡單:

C-x 1 只保留一個窗格(也就是關掉其它全部窗格)。

也就是先按 CONTROL-x 而後再按 1。C-x 1 會保留光標所在的窗格,並將其擴大 到整個屏幕,同時關掉全部其它的窗格。

>> 把光標移到本行而後輸入 C-u 0 C-l。
>> 輸入 C-h k C-f。觀察當一個新窗格出現時當前窗格(用來顯示

C-f 命令的文檔)是如何縮小的。

>> 輸入 C-x 1 關掉文檔窗格。

有一系列命令是以 CONTROL-x 開始的,這些命令許多都跟「窗格、文件、緩衝區 【緩衝區(buffer)會在後文詳細介紹】」等等諸如此類的東西有關,其中有些 命令可能包含了 2 個、3 個或者 4 個字符。

6 插入與刪除(INSERTING AND DELETING)


插入文字很簡單,直接敲鍵盤就能夠了。普通的字符,好比 A、七、* 等等,會 隨着你的輸入而插入。要插入一個換行符,輸入 <Return>(這個鍵在鍵盤上有 時會被標註成「Enter」)。

你能夠用 <DEL> 來刪除光標左邊的字符,這個鍵一般被標註爲「Backspace」――跟 你在 Emacs 以外的用法應該同樣,刪除最後一個輸入的字符。

你的鍵盤上可能有另一個鍵,標註着 <Delete>,但那個不是咱們所說的 <DEL>。

>> 如今就來試試――敲點字,而後按幾下 <DEL> 刪除它們。

不用擔憂文件被修改,你作什麼都不要緊,這裏就是專給你練習用的。

若是一行文字很長、超出了窗格的寬度,顯示不下的部分會在緊鄰的下一行繼續 顯示。若是你使用的是圖形界面,文本區域兩邊的狹窄區域(左右「邊緣」)會出 現小小的轉彎箭頭,代表這是某一行的接續顯示。若是你使用的是文本終端,接 續顯示由屏幕最右邊一列的一個反斜線來表示。

>> 輸入文字,一直到屏幕的右邊界,而後繼續。

你會看到一個接續行出現。

>> 用 <DEL> 刪掉一些文字,直到此行長度小於窗格寬度,接續行就消失了。

換行符跟其它字符同樣能夠被刪除。兩行中間的換行符被刪除後,這兩行將會合 併成一行。若是合併後的這一行太長,超出了窗格寬度,它就會以一個接續行來 顯示。

>> 移動光標到某行的開頭並輸入 <DEL>。

這時該行將與其前一行一塊兒被合併爲一行。

>> 輸入 <Return> 從新插入你剛纔刪除的換行符。

前面講過,大部分的 Emacs 命令均可以指定重複次數,這其中也包括輸入字符的 命令。重複執行輸入字符的命令實際上就是輸入多個相同的字符。

>>  試試 C-u 8 *,這將會插入 ********。

好,如今你應該已經掌握了最基本的的文本插入和修改功能,其實刪除還能夠 「以詞爲單位」進行,下面是一個關於「刪除」操做的小結:

<DEL>        刪除光標前的一個字符
C-d          刪除光標後的一個字符

M-<DEL>      移除光標前的一個詞
M-d          移除光標後的一個詞

C-k          移除從光標到「行尾」間的字符
M-k          移除從光標到「句尾」間的字符

【可能你已經注意到了「刪除(delete)」和「移除(kill)」的用詞區別,後 文會有詳細說明。】

注意「<DEL> 和 C-d」還有「M-<DEL> 和 M-d」是根據前述慣例從 C-f和 M-f 衍生 出來的(其實<DEL>不是控制字符,咱們先忽略這一點)。C-k和 M-k 的關係在 某種程度上與 C-e 和 M-e 同樣――若是把「一行」和「一句」做一個類比的話。

你也能夠用一種通用的辦法來移除緩衝區裏的任何一部分:首先把光標移動到你 想要移除的區域的一端,而後按 C-<SPC>(<SPC>指空格)【注意,C-<SPC> 往 往被中文用戶設定成輸入法熱鍵,若是這樣,C-<SPC> 就被系統攔截而沒法傳遞 給 Emacs 了,在這種狀況下可使用C-@。】,而後將光標移動到你準備移除的 文字的另外一端。這個時候, Emacs 會高亮光標和你按下 C-<SPC> 之間的文本。 最後,按下 C-w 。這樣就能夠把位於這兩點之間的全部文字移除了。

>> 移動光標到上一段開頭的「你」字。
>> 輸入 C-<SPC> 。Emacs 應該會在屏幕的下方顯示一個「Mark set」的消息。
>> 移動光標到第二行中的「端」字。
>> 輸入 C-w,從「你」開始到「端」以前的文字被所有移除。

注意,「移除(kill)」和「刪除(delete)」的不一樣在於被移除的東西能夠被從新 插入(在任何位置),而被刪除的就不能使用相同的方法從新插入了(不過能夠 經過撤銷一個刪除命令來作到,後文會提到)。【實際上,移除掉的東西雖然看 起來「消失」了,但實際上被 Emacs 記錄了下來,所以還能夠找回來;而刪除掉 的東西雖然也可能還在內存裏,可是已經被 Emacs「拋棄」了,因此就找不回來 了。】從新插入被移除的文字稱爲「召回(yank)」。通常而言,那些可能消除很 多文字的命令會把消除掉的文字記錄下來(它們被設定成了「可召回」),而那些 只消除一個字符或者只消除空白的命令就不會記錄被消除的內容(天然你也就無 法召回了)。

>> 移動光標到一非空白行的行頭,而後輸入 C-k 移除那一行上的文字。
>> 再次 C-k,你能夠看到它移除了跟在那一行後面的換行符。

注意,單獨的 C-k 會把一行的內容移除,而第二個 C-k 則會移除換行符,並使 其後全部的行都向上移動。C-k 處理數字參數的方式很特別,它會把參數指定的 那麼多行連同其後的換行符一塊兒移除,而不只僅是重複 C-k 而已。好比 C-u 2 C-k 會把兩行以及它們的換行符移除;而若是隻是輸入 C-k 兩次顯然不是這個結 果。

從新插入被移除的文字恢復的動做稱爲「召回(yanking)」。(就好像把別人從你身邊 移走的東西又猛力地拉回來。)你能夠在你刪除文字的地方召回,也能夠在別的 地方召回,還能夠屢次召回一樣的文字以獲得它的多個拷貝。不少其它的編輯器 把移除和召回叫作「剪切」和「粘貼」 (詳情可見 Emacs 使用手冊裏的術語表)。

召回的命令是 C-y。它會在光標所在處插入你最後移除的文字。

>> 試試看,輸入 C-y 將文字召回。

若是你一次連按了好幾下 C-k,那麼全部被移除的行會被存儲在一塊兒,只要一個 C-y 就能夠把它們都召回。

>> 在這裏試試,連續按幾回 C-k。

如今再來恢復剛剛被咱們移除的文字:

>> 按 C-y。而後把光標往下移動幾行,再按一次 C-y。

如今你應該知道怎麼複製文字了。

C-y 能夠召回最近一次移除的內容,那如何召回前幾回移除的內容呢?它們固然 沒有丟,你能夠用 M-y 來召回它們。在用 C-y 召回最近移除的文字以後,緊接 着再按 M-y 就能夠召回再前一次被移除的內容,再按一次 M-y 又能夠召回再上 一次的……連續使用 M-y 直到找到你想要召回的東西,而後什麼也不用作,繼續 編輯就好了。

若是連續按 M-y 不少次,你可能會回到起始點,也就是最近移除的文字。 【看得出這其實是一個環。】

>> 移除一行,移動一下光標,而後再移除另一行。
  按 C-y 將第二次移除的那行召回來。
  緊接着再按 M-y,它將會被第一次移除的那行取代。
  試着再按幾下 M-y 看看會發生什麼。
  再繼續,直到第二行被召回來,而後再作個幾回。
  若是感興趣,你能夠試着給 M-y 指定一個正的或負的參數。

7 撤銷(UNDO)


若是你修改了一段文字,又以爲改得很差,能夠用 undo 命令進行撤銷:C-/。

一般 C-/ 會消除一個命令所形成的全部改變;若是你在一行中連續屢次地使用 C-/,你會把之前的命令也依次撤銷。

可是有兩個例外: 1) 沒有改變文字的命令不算(包括光標移動命令和滾動命令) 2) 從鍵盤輸入的字符以組爲單位――每組最多 20 個字符――來進行處理。 (這是爲了減小你在撤銷「插入文字」動做時須要輸入 C-/ 的次數)

>> 用 C-k 將這一行移除,而後輸入 C-/ ,它會再次出現。

C-_ 也是撤銷命令;它的做用跟 C-/ 同樣,可是它比較容易屢次輸入。在 某些終端上,輸入 C-/ 實際上向 Emacs 發送的是 C-_ 。 另外, C-x u 和 C-/ 徹底同樣,可是按起來有些麻煩。

數字參數對於 C-/ 、 C-_ 和 C-x u 的意義是執行撤銷的重複次數。

8 文件(FILE)


想保存工做成果就要記得存盤,不然一旦退出 Emacs 你編輯的文字就會丟失。要 存盤,就要在編輯前「尋找」到一個存盤文件。(這個過程一般也被稱爲「訪問」 文件。)

尋找到一個文件意味着你能夠在 Emacs 裏查看這個文件的內容。從許多角度看, 這就等於你在直接編輯這個文件,只是你所作的修改只有在「存盤」的時候纔會 被寫入文件。也正由於如此,你能夠丟棄一個寫到一半的文件而沒必要把這個殘缺 文件也保存到計算機上。在存盤的時候,Emacs 會把存盤前的文件重命名保存, 以防你改完以後又想反悔。

在屏幕的下方,你應該可以看到頭部有短線「-」的一行,行首一般是一些諸如「 -:— TUTORIAL.cn」的文字,這些文字表明瞭你當前正在訪問的文件。好比你現 在正在訪問的文件是對 Emacs 快速指南的一份臨時拷貝,叫作「TUTORIAL.cn」。 每當Emacs 尋找到一個文件,文件名就會出如今這個位置。

尋找文件的命令有一個特色,那就是你必須給出文件名。咱們稱這個命令「讀入 了一個參數」(在這裏,這個參數顯然就是文件名)。在你輸入這條命令以後:

C-x C-f   尋找一個文件

Emacs 會提示你輸入文件名。你輸入的文件名會出如今屏幕最底端的一行,這一 行被稱爲小緩衝(minibuffer),在小緩衝裏你可使用一般的 Emacs 編輯命令 來編輯文件名。

在小緩衝裏輸入文件名(其實輸入其它東西也同樣)時能夠用 C-g 取消。

>> 輸入 C-x C-f,而後輸入 C-g

這會關掉小緩衝,同時也會取消使用小緩衝的 C-x C-f 命令。 固然了,你也沒有找任何文件。

用 <Return> 結束文件名的輸入。以後,小緩衝會消失,C-x C-f 將會去尋找你 指定的文件。小緩衝在 C-x C-f 命令結束以後也會消失。

文件被顯示在了屏幕上,你能夠開始編輯了。存盤用這條命令:

C-x C-s   儲存這個文件

這條命令把 Emacs 中的文字存儲到文件中。第一次存盤的時候 Emacs 會將原文 件重命名以備份。重命名的規則一般是在原文件名以後添加一個「~」字符。 【對許多人來講,這是一個煩人的特性,關掉文件備份能夠用以下命令: M-x customize-variable <Return> make-backup-files <Return>】

存盤結束後,Emacs 會顯示寫入文件的文件名。你最好養成常常存盤的習慣,這 能夠減小系統崩潰和死機給你帶來的損失(也可參見下面的「自動保存」一節)。

>> 輸入 C-x C-s TUTORIAL.cn <Return> 。

這將會把該指南保存爲一個名爲 TUTORIAL.cn 的文件,而且在屏幕的下方顯 示一條消息:「Wrote …TUTORIAL.cn」。

你不但能夠尋找一個已有的文件來查看或編輯,還能夠尋找一個不存在的文件。 實際上這正是 Emacs 建立新文件的方法:找到不存在的新文件。事實上,只有 在存盤的時候,Emacs 纔會真正建立這個文件。而在這以後的一切就跟編輯一個 已有文件沒有區別了。

9 緩衝區(BUFFER)


你能夠用 C-x C-f 找到並打開第二個文件,但第一個文件仍然在 Emacs 中。要 切回第一個文件,一種辦法是再用一次 C-x C-f。這樣,你就能夠在 Emacs 中同 時打開多個文件。

Emacs 把每一個編輯中的文件都放在一個稱爲「緩衝區(buffer)」的地方。每尋 找到一個文件,Emacs 就在其內部開闢一個緩衝區。用下面的命令能夠列出當前 全部的緩衝區:

C-x C-b 列出緩衝區

>> 如今就試一下 C-x C-b

觀察一下緩衝區是如何被命名的,它極可能跟與其對應的文件同名。實際上,一 個 Emacs 窗格里的任何文字都是某個緩衝區的一部分。

>> 輸入 C-x 1 離開緩衝區列表

無論存在多少緩衝區,任什麼時候候都只能有一個「當前」緩衝區,也就是你正在編 輯的這個。若是你想編輯其它的緩衝區,就必須「切換」過去。上面講過,用 C-x C-f 是一種辦法。不過還有一個更簡單的辦法,那就是用 C-x b。用這條命 令,你必須輸入緩衝區的名稱。

>> 經過輸入 C-x C-f foo <Return> 建立一個名爲「foo」的文件。

而後輸入 C-x b TUTORIAL.cn <Return> 回到這裏。

大多數狀況下,緩衝區與跟其對應的文件是同名的(不包括目錄名),不過這也 不是絕對的。用 C-x C-b 獲得的緩衝區列表老是顯示緩衝區名。

緩衝區未必有對應文件。顯示緩衝區列表的緩衝區(叫作「*Buffer List*」)就 是這樣。這個 TUTORIAL.cn 緩衝區起初沒有對應的文件,可是如今有了,由於 在前一節你輸入了 C-x C-s , 將它保存成了一個文件。

「*Messages*」緩衝區也沒有對應文件,這個緩衝區裏存放的都是在 Emacs 底部 出現的消息。

>> 輸入 C-x b *Messages* <Return> 瞅瞅消息緩衝區裏都有什麼東西。

而後再輸入 C-x b TUTORIAL.cn <Return> 回到這裏。

若是你對某個文件作了些修改,而後切換到另外一個文件,這個動做並不會幫你把 前一個文件存盤。對第一個文件的修改仍然僅存在於 Emacs 中,也就是在它對 應的緩衝區裏。而且,對第二個文件的修改也不會影響到第一個文件。這頗有用, 但也意味着你須要一個簡便的辦法來保存第一個文件的緩衝區。先切換回那個緩 衝區,再用 C-x C-s 存盤,太麻煩了。你須要一個更簡便的方法,而 Emacs 已 經爲你準備好了:

C-x s   保存多個緩衝區

C-x s 會找出全部已被修改但還沒有存盤的緩衝區,而後向你逐個詢問:是否須要 存盤?

>> 插入一行文字,而後輸入 C-x s。

它應該會問你,是否要儲存名爲 TUTORIAL.cn 的緩衝區? 按「y」告訴它你想存盤。

10 命令集擴展(EXTENDING THE COMMAND SET)


Emacs 的命令就像天上的星星,數也數不清。把它們都對應到 CONTROL 和 META 組合鍵上顯然是不可能的。Emacs 用擴展(eXtend)命令來解決這個問題,擴展 命令有兩種風格:

C-x     字符擴展。  C-x 以後輸入另外一個字符或者組合鍵。
M-x     命令名擴展。M-x 以後輸入一個命令名。

不少擴展命令都至關有用,雖然與你已經學過的命令比起來,他們可能不那麼常 用。咱們早已經見過一些擴展命令了,好比用 C-x C-f 尋找文件和用 C-x C-s 保存文件;退出 Emacs 用的 C-x C-c 也是擴展命令。(不用擔憂退出 Emacs 會 給你帶來什麼損失,Emacs 會在退出以前提醒你存盤的。)

若是你使用圖形界面,你不須要任何特殊的命令來切換 Emacs 和其餘應用程序。 你可使用鼠標或者窗口管理器的命令。然而,若是你使用只能同時顯示一個應 用程序的文本終端,你須要「掛起」 Emacs ,以切換到其餘的應用程序。

C-z 能夠暫時離開 Emacs――固然,你還能夠再回來。在容許 C-z 的系統中,C-z 會把 Emacs「掛起」,也就是說,它會回到 shell但不殺死 Emacs 的進程。在常 用的 shell 中,一般能夠用「fg」或者「%emacs」命令再次回到 Emacs 中。

你最好在打算退出登錄的時候再用 C-x C-c。在把 Emacs 當作一個臨時的編輯 器的時候(好比被一個郵件處理程序調用),也能夠用 C-x C-c 退出。

C-x 的擴展命令有不少,下面列出的是你已經學過的:

C-x C-f         尋找文件。
C-x C-s         保存文件。
C-x C-b         列出緩衝區。
C-x C-c         離開 Emacs。
C-x 1           關掉其它全部窗格,只保留一個。
C-x u           撤銷。

用命令名擴展的命令一般並不經常使用,或只用在部分模式下。好比 replace-string(字符串替換)這個命令,它會把一個字符串替換成另外一個。在 輸入 M-x 以後,Emacs 會在屏幕底端向你詢問並等待你輸入命令名。若是你想 輸入「replace-string」,其實只須要敲「repl s<TAB>」就好了,Emacs 會幫你自 動補齊。輸入完以後按 <Return> 提交。

字符串替換命令須要兩個參數――被替換的字符串和用來替換它的字符串。每一個 參數的輸入都以換行符來結束。

>> 將光標移到本行下面第二行的空白處,而後輸入

M-x repl s<Return>changed<Return>altered<Return>。

【如下保留一行原文,以應練習之需:】 Notice how this line has changed: you've replaced…

請注意這一行的變化:在光標以後的範圍內,你已經將「changed」這個詞――不 論它在哪裏出現――所有用「altered」替換掉了。

11 自動保存(AUTO SAVE)


若是你已經修改了一個文件,可是還沒來得及存盤你的計算機就罷工了,那麼你 所作的修改就極可能會丟失。爲了不這樣的不幸發生,Emacs 會按期將正在編 輯的文件寫入一個「自動保存」文件中。自動保存文件的文件名的頭尾各有一個 「#」字符,好比你正在編輯的文件叫「hello.c」,那麼它的自動保存文件就叫 「#hello.c#」。這個文件會在正常存盤以後被 Emacs 刪除。

因此,假如不幸真的發生了,你大能夠從容地打開原來的文件(注意不是自動保 存文件)而後輸入 M-x recover file <Return> 來恢復你的自動保存文件。在 提示確認的時候,輸入 yes<Return>。

12 回顯區(ECHO AREA)


若是 Emacs 發現你輸入多字符命令的節奏很慢,它會在窗格的下方稱爲「回顯區」 的地方給你提示。回顯區位於屏幕的最下面一行。

13 狀態欄(MODE LINE)


位於回顯區正上方的一行被稱爲「狀態欄」。狀態欄上會顯示一些信息,好比:

-:**- TUTORIAL.cn 63% L749 (Fundamental)

狀態欄顯示了 Emacs 的狀態和你正在編輯的文字的一些信息。

你應該知道文件名的意思吧?就是你找到的那個文件嘛。-NN%– 顯示的是光標在 全文中的位置。若是位於文件的開頭,那麼就顯示 –Top– 而不是 –00%–;如 果位於文件的末尾,就顯示 –Bot–。若是文件很小,一屏就足以顯示所有內容, 那麼狀態欄會顯示 –All–。

「L」 和其後的數字給出了光標所在行的行號。

最開頭的星號(*)表示你已經對文字作過改動。剛剛打開的文件確定沒有被改動 過,因此狀態欄上顯示的不是星號而是短線(-)。

狀態欄上小括號裏的內容告訴你當前正在使用的編輯模式。缺省的模式是 Fundamental,就是你如今正在使用的這個。它是一種「主模式」。

Emacs 的主模式林林總總。有用來編輯程序代碼的――好比 Lisp 模式;也有用 來編輯各類天然語言文本的――好比 Text 模式。任何狀況下只能應用一個主模 式,其名稱會顯示在狀態欄上,也就是如今顯示「Fundamental」的地方。

主模式一般會改變一些命令的行爲。比方說,無論編輯什麼語言的程序代碼,你 均可以用一個相同的命令來添加註釋。可是在不一樣的語言中註釋的語法每每是不 同的,這時不一樣的主模式就會用各自不一樣的語法規則來添加註釋。主模式都是可 以用 M-x 啓動的擴展命令,M-x fundamental-mode 就能夠切換到 Fundamental 模式。

編輯天然語言文本――好比如今――應該用 Text 模式。

>> 輸入 M-x text-mode <Return>。

別擔憂,什麼都沒變。不過細心一些能夠發現,M-f 和 M-b 如今把單引號(') 視爲詞的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都將單引號 視爲分隔單詞的符號。

主模式一般都會搞一些相似的小動做,由於不少命令其實完成的是「相同的工 做」,只是在不一樣環境下會有不一樣的工做方式而已。【所謂「求同存異」,在 Emacs 裏獲得了很好的體現】

用 C-h m 能夠查看當前主模式的文檔。

>> 把光標移動到下一行。
>> 用 C-l C-l 將本行帶到屏幕的最上方。
>> 輸入 C-h m,看看 Text 模式與 Fundamental 模式有哪些不一樣。
>> 輸入 C-x 1 關掉文檔窗格。

主模式之因此稱之爲「主(major)」模式,是由於同時還有「輔模式」(minor mode)存在。輔模式並不能替代主模式,而是提供一些輔助的功能。每一個輔模式 均可以獨立地開啓和關閉,跟其它輔模式無關,跟主模式也無關。因此你能夠不 使用輔模式,也能夠只使用一個或同時使用多個輔模式。

有一個叫作自動折行(Auto Fill)的輔模式頗有用,特別是在編輯天然語言文本 的時候。啓用自動折行後,Emacs 會在你打字超出一行邊界時自動替你換行。

用 M-x auto-fill-mode <Return> 啓動自動折行模式。再用一次這條命令,自 動折行模式會被關閉。也就是說,若是自動折行模式沒有被開啓,這個命令會開 啓它;若是已經開啓了,這個命令會關閉它。因此咱們說,這個命令能夠用來 「開關(toggle)」模式。

>> 如今輸入 M-x auto-fill-mode <Return>。而後隨便敲點什麼,直到你看到它

分紅兩行。你必須敲一些空格,由於 Auto Fill 只在空白處進行斷行。 【輸入空格對英文來講是必須的,而對中文則沒必要。】

行邊界一般被設定爲 70 個字符【這裏指英文字符】,你能夠用 C-x f 命令配合 數字參數來從新設定它。

>> 輸入 C-x f 並傳遞參數 20: C-u 2 0 C-x f。

而後輸入一些文字,觀察 Emacs 的自動折行動做 最後再用 C-x f 將邊界設回 70。

若是你在段落的中間作了一些修改,那麼自動折行模式不會替你把整個段落從新 折行,你須要用 M-q 手動折行。注意,光標必須位於你須要折行的那一段裏。

>> 移動光標到前一段中,而後輸入 M-q。

14 搜索(SEARCHING)


Emacs 能夠向前或向後搜索字符串(「字符串」指的是一組連續的字符)。搜索命 令是一個移動光標的命令:搜索成功後,光標會停留在搜索目標出現的地方。

Emacs 的搜索命令是「漸進的(incremental)」。意思是搜索與輸入同時進行: 你在鍵盤上一字一句地輸入搜索詞的過程當中,Emacs 就已經開始替你搜索了。

C-s 是向前搜索,C-r 是向後搜索。不過手別這麼快!彆着急試。

在按下 C-s 以後,回顯區裏會有「I-search」字樣出現,代表目前 Emacs 正處 於「漸進搜索」狀態,並等待你輸入搜索字串。按 <Return> 能夠結束搜索。

>> 輸入 C-s 開始一個搜索。注意敲慢一點,一次輸入一個字符。

慢慢輸入「cursor」這個詞,每敲一個字都停頓一下並觀察光標。 如今你應該已曾經找到「cursor」這個詞了。

>> 再按一次 C-s,搜索下一個「cursor」出現的位置。
>> 如今按四次 <DEL> ,看看光標是如何移動的。
>> 敲 <Return> 結束搜索。

看仔細了麼?在一次漸進式搜索中,Emacs 會嘗試跳到搜索目標出現的位置。要 跳到下一個命中位置,就再按一次 C-s。若是找不到目標,Emacs 會發出「嗶」 的一聲,告訴你搜索失敗。在整個過程當中,均可以用 C-g 來終止搜索。【你會發 現 C-g 會讓光標回到搜索開始的位置,而 <Return> 則讓光標留在搜索結果上, 這是頗有用的功能。】

在漸進式搜索中,按 <DEL> 會「撤回」到最近一次搜索的命中位置。若是以前沒 有一個命中, <DEL> 會抹去搜索字符串中的最後一個字符。好比你已經輸入了 「c」,光標就停在「c」第一次出現的位置,再輸入「u」,光標停在「cu」第一次出現 的位置,這時再按 <DEL> ,「u」就從搜索字串中消失了,而後光標會回到「c」第 一次出現的位置。

另外,若是你在搜索的時候輸入了 control 或者 meta 組合鍵的話,搜索可能會 結束。(也有例外,好比 C-s 和 C-r 這些用於搜索的命令。)

前面說的都是「向下」搜索,若是想「向上」搜索,能夠用 C-r。C-r 與 C-s 相比除了搜索方向相反以外,其他的操做都同樣。

15 多窗格(MULTIPLE WINDOWS)


Emacs 的迷人之處不少,可以在屏幕上同時顯示多個窗格就是其中之一。

>> 移動光標到這一行,而後輸入 C-l C-l。
>> 如今輸入 C-x 2,它會將屏幕劃分紅兩個窗格。

這兩個窗格里顯示的都是本篇快速指南,而光標則停留在上方的窗格里。

>> 試試用 C-M-v 滾動下方的窗格。

(若是你並無 META 鍵,用 ESC C-v 也能夠。) 【向上滾動是 C-M-S-v,也就是同時按住 CONTROL、META 和 SHIFT 再按 v】

>> 輸入 C-x o(「o」指的是「其它(other)」),

將光標轉移到下方的窗格。

>> 在下方的窗格中,用 C-v 和 M-v 來滾動。

同時繼續在上方的窗格里閱讀這些指導。

>> 再輸入 C-x o 將光標移回到上方的窗格里。

光標會回到它在上方窗格中本來所在的位置。

連續使用 C-x o 能夠遍歷全部窗格。「被選中的窗格」,也就是絕大多數的編輯 操做所發生的地方,是在你不打字時閃爍光標的那個窗格。其餘的窗格有它們自 己的光標位置; 若是你在圖形界面下運行 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 關掉下方窗格。

(若是你在下方的窗格里輸入 C-x 1,那麼就會關掉上方的窗格。你能夠把這個 命令當作是「只保留一個窗格」――就是咱們正在編輯的這個。)

不一樣的窗格能夠顯示不一樣的緩衝區。若是你在一個窗格里用 C-x C-f 打開了一個 文件,另外一個窗格並不會發生什麼變化。任何一個窗格里均可以用來打開文件。

用下面的方法能夠在一個新開窗格里打開文件:

>> 輸入 C-x 4 C-f,緊跟着輸入一個文件名,再用 <Return> 結束。

能夠看到你指定的文件出如今下方的窗格中,同時光標也跳到了那裏。

>> 輸入 C-x o 回到上方的窗格,而後再用 C-x 1 關掉下方窗格。

16 多窗口(MULTIPLE FRAMES)


Emacs 能夠建立多個窗口。窗口由許多窗格以及菜單、滾動條、回顯區等組成。 在圖形界面下,多個窗口能夠同時顯示出來。在文本終端中,只能同時顯示一個 窗口。

>> 輸入 M-x make-frame <Return>。

能夠看到一個新的窗口出如今了你的屏幕上。

你能夠在新的窗口裏作最初的窗口裏能夠作的任何事情。第一個窗口沒有什麼特 別的。

>> 輸入 M-x delete-frame <Return>.

這個命令將會關閉選中的窗口。

你也能夠經過圖形系統來關閉某個窗口(一般是在窗口上面的某個角落裏的一個 「X」按鈕)。若是你關閉的是 Emacs 進程的最後一個窗口, Emacs 將會退出。

17 遞歸編輯(RECURSIVE EDITING LEVELS)


有時候你會進入所謂的「遞歸編輯」。遞歸編輯狀態由位於狀態欄的方括號所指 示,其中包含了用小括號來指明的模式名稱。好比說,你有時可能會看到 [(Fundamental)],而不是 (Fundamental)。【好比在用 M-% 進行交互式替換的 時候你又用了 C-s 進行搜索,這時替換模式並無結束,但你又進入了搜索模式, 這就是所謂的遞歸編輯。】

離開遞歸編輯能夠用 ESC ESC ESC。這是一個最通用的「離開」命令,你甚至可 以使用它來關掉多餘的窗格,或者離開小緩衝。

>> 輸入 M-x 進入小緩衝;而後輸入 ESC ESC ESC 離開。

你不能用 C-g 退出遞歸編輯,由於 C-g 的做用是取消「本層遞歸編輯以內」的 命令和其參數(arguments)。

18 得到更多幫助(GETTING MORE HELP)


本快速指南的目的僅僅是幫助你在 Emacs 的海洋裏下水,不至於一籌莫展望洋興 嘆。有關 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。

顯示的消息應該會是這樣:

C-p runs the command previous-line

這條消息顯示了 C-p 命令對應的函數名。命令的功能由函數完成,因此函數名 自己也能夠被當作是最簡單的文檔――至少對於你已經學過的命令來講,它們的函 數名足以解釋它們的功能了。

多字符命令同樣能夠用 C-h c 來查看。

想獲得更多的信息,請把 C-h c 換成 C-h k 試試看。

>> 輸入 C-h k C-p。

上面的命令會新打開一個 Emacs 窗格以顯示函數的名稱及其文檔。你讀完以後可 以用 C-x 1 關掉這個幫助窗格。固然你並不須要當即這樣作,你徹底能夠先在編 輯窗格里作點別的事情,而後再關掉幫助窗格。

還有一些其它有用的 C-h 命令:

C-h f        解釋一個函數。須要輸入函數名。
>> 試試看,輸入 C-h f previous-line <Return>。

Emacs 會給出它所知道的全部有關「實現 C-p 命令功能的函數」的信息。

C-h v 用來顯示 Emacs 變量的文檔。Emacs 變量能夠被用來「定製 Emacs 的行 爲」。一樣,你須要輸入變量的名稱。

C-h a 相關命令搜索(Command Apropos)。 輸入一個關鍵詞而後 Emacs 會列出全部命令名中包含此關鍵詞 的命令。這些命令全均可以用 M-x 來啓動。對於某些命令來講, 相關命令搜索還會列出一兩個組合鍵。

>> 輸入 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*」的特殊緩衝區,在那裏, 你能夠閱讀安裝在系統裏的軟件包使用手冊。要讀 Emacs 的使 用手冊,按 m emacs <Return> 就能夠了。若是你以前從沒用 過 Info 系統,那麼請按「?」,Emacs 會帶你進入 Info 的使 用指南。在看完本快速指南以後,Emacs Info 會成爲你的主要 參考文檔。

19 更多精彩(MORE FEATURES)


想學習更多的使用技巧,Emacs 使用手冊(manual)值得一讀。你能夠讀紙版的 書,也能夠在 Emacs 中讀(能夠從 Help 菜單進入或者按 C-h r)。提兩個你 可能會很感興趣的功能吧,一個是能夠幫你少敲鍵盤的 completion(自動補全), 另外一個是方便文件處理的 dired(目錄編輯)。

Completion 能夠替你節省沒必要要的鍵盤輸入。好比說你想切換到 Message 緩 衝區,你就能夠用 C-x b *M<Tab> 來完成。只要 Emacs 可以根據你已經輸入的 文字肯定你想要輸入的內容,它就會自動幫你補齊。Completion 也可用於命令 名和文件名。有關 Completion 的詳細說明能夠在 Emacs Info 中的 「Completion」一節裏找到。

Dired 可以在一個緩衝區裏列出一個目錄下的全部文件(能夠選擇是否也列出子 目錄),而後你能夠在這個文件列表上完成對文件的移動、訪問、重命名或刪除 等等操做。Dired 也在 Emacs 使用手冊中有詳細介紹,參見「Dired」一節。

Emacs 使用手冊裏還有許許多多的精彩功能等着你來了解。

20 總結(CONCLUSION)


要退出 Emacs 請用 C-x C-c。

本文徹底是爲零起點新手所寫的起步教程。若是你以爲哪裏還看不明白,千萬不 要懷疑本身,那必定是咱們沒有寫好。咱們永遠歡迎你的不滿和抱怨。

21 翻譯(TRANSLATION)


翻譯:孫一江 <sunyijiang@gmail.com> 維護:薛富僑 <xfq.free@gmail.com> 校對:水木社區(www.newsmth.net)Emacs 板衆多網友及衆多 Emacs 中文用戶

Emacs 快速指南(Tutorial)早有兩個劉昭宏的中文譯本,繁簡各一。其簡體版本 (TUTORIAL.cn)基本由繁體版本(TUTORIAL.zh)經詞語替換而得。然而繁簡中文 不只在用詞習慣上有所不一樣,更有諸多表達方式與句法方面的差別,所以一直以來 用戶使用 TUTORIAL.cn 都會略覺生硬和晦澀。此次從新翻譯 TUTORIAL.cn 的動機 正是源於這種體驗,但願咱們的工做可以讓本文更好地發揮其做用。TUTORIAL.zh 的譯文質量很高,在翻譯過程當中給予過咱們許多借鑑和參考,在此對劉昭宏的工做 表示感謝。

翻譯過程當中最大的挑戰莫過於術語譯詞的選擇了。通過水木社區 Emacs 板熱心 網友小範圍內的討論,咱們選擇瞭如今的譯法。用戶的普遍參與是自由軟件生命 力的源泉,因此若是你有任何建議、勘誤或想法,請用你喜歡的方式向咱們提出。 你能夠經過電子郵件直接聯繫維護者,也能夠放到 GNU Emacs 的開發郵件列表 或者水木社區的 Emacs 板上進行討論。

下面列出主要術語的譯詞對照,並給出註釋說明:

command               命令
cursor                光標
scrolling             滾動
numeric argument      數字參數
window                窗格 [1]
insert                插入
delete                刪除 [2]
kill                  移除 [2]
yank                  召回 [2]
undo                  撤銷
file                  文件
buffer                緩衝區
minibuffer            小緩衝
echo area             回顯區
mode line             狀態欄
search                搜索
incremental search    漸進式搜索 [3]

對於其餘沒有提到的術語,讀者能夠參考 Emacs 使用手冊裏的術語表。

22 版權聲明(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!

【下面爲版權聲明的譯文,僅供參考。實際法律效力以英文原文爲準。】

本快速指南沿襲自歷史悠久的 Emacs 快速指南,可上溯至 Stuart Cracraft 爲最 初的 Emacs 所做的版本。

本篇指南是 GNU Emacs 的一部分,並容許在下列條件的約束下發行其拷貝:

Copyright (C) 1985, 1996, 1998, 2001-2014 Free Software Foundation, Inc.

本文件爲 GNU Emacs 的一部分。

GNU Emacs 爲自由軟件;您可依據自由軟件基金會所發表的GNU通用公共受權 條款,對本程序再次發佈和/或修改;不管您依據的是本受權的第三版,或 (您可選的)任一往後發行的版本。

GNU Emacs 是基於使用目的而加以發佈,然而不負任何擔保責任;亦無對適 售性或特定目的適用性所爲的默示性擔保。詳情請參照GNU通用公共受權。

您應已收到附隨於 GNU Emacs 的GNU通用公共受權的副本;若是沒有,請參照 http://www.gnu.org/licenses/.

敬請閱讀文件「COPYING」,而後向你的朋友們分發 GNU Emacs 拷貝。讓咱們以使 用、編寫和分享自由軟件的實際行動來共同祛除軟件障礙主義(所謂的「全部 權」)!

Author: 盧小友

Created: 2015-04-27 週一 21:05

Website:luxiaoyou.com (About)

Sina Weibo:http://weibo.com/yougelu

相關文章
相關標籤/搜索