<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kooyee ‘s blog

    開源軟件, 眾人努力的結(jié)晶, 全人類的共同財富
    posts - 103, comments - 55, trackbacks - 0, articles - 66
       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    【Linux】Emacs 教程中文版

    Posted on 2009-01-05 02:16 kooyee 閱讀(2596) 評論(0)  編輯  收藏
    Emacs 的命令通常包括控制鍵(就是上面標(biāo)有 Ctrl或Ctl的那個)或者是META鍵(上面標(biāo)有EDIT或ALT)。為了方便起見我們將用下面的縮寫來代替這些鍵的全稱:

    C- 意思是當(dāng)敲入字符 時同時按住控制鍵,因此,C-f表 示:按住控制鍵并且按 f 。 M- 表示當(dāng)鍵入 時按住META或ALT或EDIT鍵。如果沒有META 或ALT或EDIT鍵,則用ESC鍵代替。 表示ESC鍵

    注意:退出Emacs,按C-x C-c(兩個字符)。在文本左邊區(qū)域的“>>”符號表示讓你試著使用一個命令。比如:
    >> 現(xiàn)在鍵入C-v(觀看下一屏)移動到下一屏。(就象前面說的,按v的同時也按住控制鍵)。從現(xiàn)在開始,每當(dāng)你讀完一屏的時候都可以用它來翻屏。
    注意在翻屏后會保留上屏的最后一行;這是為你繼續(xù)閱讀文本提供某些連貫性。
    你所需要知道的第一件事是如何把光標(biāo)從一個地方移動到另一個地方。你已經(jīng)知道了如何向前翻一屏--用 C-v。要向后翻一屏,鍵入M-v。
    >> 試著鍵入 M-v 和 C-v 幾次。
    * 摘要(SUMMARY)
    ---------------------------
    下面幾個命令對整屏觀看時有用:

    C-v 向前翻一整屏。
    M-v 向后翻一整屏。
    C-l 清除屏幕并重新顯示所有的文本,然后把光標(biāo)移動到屏幕的中央。 (注意是Control-L,而不是 Control-1)。
    >> 尋找光標(biāo),并且注意它在文本里的位置。然后鍵入C-l。再尋找光標(biāo)你會注意到光標(biāo)現(xiàn)在會出現(xiàn)在同樣的文本附近。
    * 基本光標(biāo)控制(BASIC CURSOR CONTROL)
    -----------------------------------------------------------------
    整屏整屏的移動是很有用的,可是如何把光標(biāo)移動到屏幕上文本里的一個指定的地方呢?
    有好幾個方法可以實現(xiàn)。最基本的方法是用命令 C-p,C-b,C-f,和C-n。這些命令每個都使光標(biāo)在屏幕上往特定的方向移動一行或者一列。下面是一個圖表顯示了這四個命令和它們所移動的方向:


    上一行,C-p
    :
    :
    向前,C-b ...... 當(dāng)前光標(biāo)的位置 ...... 向后,C-f
    :
    :
    下一行,C-n
    >> 用C-n或C-p把光標(biāo)移動到圖表中間。然后鍵入C-l會看到整個圖表出現(xiàn)在屏幕的中央。



    你也許會發(fā)現(xiàn)這些字母很容易記住:P 代表上面的(previous),N 代表下一個 (next),B 代表向前(backward),F(xiàn) 代表向后(forward)。這些是基本的光標(biāo)位置命令,你將經(jīng)常會用到它們。所以現(xiàn)在學(xué)習(xí)它們很有好處。


    >> 用幾次 C-n 把光標(biāo)向下移動到這一行。

    >> 用 C-f 把光標(biāo)移動到行里,再用C-p把光標(biāo)上移。觀察當(dāng)光標(biāo)在行的中間時 C-p做了些什么。
    每一個文本行都以一個換行符結(jié)尾,它用來當(dāng)作行與行之間的分格。你的文件的最后一行的尾部應(yīng)該有一個換行符(但Emacs并不要求一定要有一個)。
    >> 試著在行的開頭使用C-b。它將會把光標(biāo)移到上一行的末尾。這是因為它向后移的時候穿過了換行符。
    C-f 也能象 C-b一樣穿過換行符。
    >> 使用幾次C-b,使您能知道光標(biāo)在哪。然后用C-f移動到行的末尾。然后再用一次C-f,使光標(biāo)移動到下一行。

    當(dāng)你移動超過屏幕的頂部或底部,光標(biāo)回移動到下一屏的中間,這叫做“滾屏 (scrolling)”。它使得Emacs滾屏移動到文本上指定的部位而不是移出屏幕。

    >> 試著用C-n把光標(biāo)移過屏幕的底部,看看回發(fā)生什么。

    如果覺得一個一個字符的移動太緩慢,可以一個單詞一個單詞的移動。M-f(Meta-f) 向前移一個單詞,M-b向后移一個單詞。
    >> 鍵入幾個M-f和M-b。

    當(dāng)光標(biāo)在一個單詞的中間,M-f移動到單詞的末尾。當(dāng)光標(biāo)在兩個單詞間的空白部分 M-f移動到后一個單詞的末尾。M-b與M-f一樣,只是移動的方向相反。
    >> 鍵入M-f和M-b幾次,中間穿插一些C-f和C-b以使你能觀察到M-f和M-b在單詞中和單詞間的不同行為。

    注意比較C-f,C-b與M-f,M-b。通常情況下Meta鍵用于有關(guān)語言單位(詞,句,段落) 的操作;而控制鍵用于編輯時的基本單位(字符,行等)。
    這是句與行的比較:C-a和C-e移動到一行的開頭和末尾,M-a和M-e移動到一個句子的開頭和末尾。
    >> 鍵入一對C-a,再鍵入一對C-e。 鍵入一對M-a,再鍵入一對M-e。

    你會看到重復(fù)鍵入的C-a什么也不做,而重復(fù)鍵入的M-a則會移動一個以上的句子。
    光標(biāo)在文本中的位置也叫“點(point)”。在段落里,光標(biāo)標(biāo)示出了點在屏幕上文本里的位置。
    下面是簡單的光標(biāo)移動命令的總結(jié),包括單詞和句子的移動命令:

    C-f 向前移動一個字符。
    C-b 向后移動一個字符。

    M-f 向前移動一個單詞。
    M-b 向后移動一個單詞。

    C-n 移動到下一行。
    C-p 移動到上一行。

    C-a 移動到行首。
    C-e 移動到行尾。

    M-a 向前移動到句子的開頭。
    M-e 向后移動到句子的末尾。

    >> 試著對每一個命令都實踐幾次,它們都是經(jīng)常要用到的命令。
    另外兩個重要的光標(biāo)移動命令是M-<(Meta小于),它移動光標(biāo)到整個文本的開頭,M-> (Meta大于)它移動光標(biāo)到整個文本的末尾。
    在多數(shù)終端上,“<”在逗號的上面,所以你必須用Shift鍵來輸入它。在這些終端上,你也必須用Shift鍵來輸入M-<;沒有Shift鍵,你可以輸入M-逗號。
    >> 現(xiàn)在就試試M-<,移動到本教程的開頭,然后再用C-v移回這里。 現(xiàn)在就試試M->,移動到本教程的末尾,然后再用M-v移回這里。

    你也可以用方向鍵來移動光標(biāo),如果你的終端有方向鍵的話。我們建議學(xué)習(xí)C-b, C-f,C-n和C-p有三個原因。第一,它們能在所有類型的終端上工作。第二,你獲得了使用Emacs的鍛煉,你將會發(fā)現(xiàn)輸入這些CTRL加字符比按方向鍵要快(因為你不必把你的手從鍵盤上移開)。第三,一旦你養(yǎng)成了使用這些CTRL加字符的命令的習(xí)慣,你就能一樣容易的學(xué)習(xí)其他高級的光標(biāo)移動命令。
    大多數(shù)Emacs命令接收一個數(shù)字參數(shù);對大多數(shù)命令來說,這表示命令重復(fù)的次數(shù)。輸入重復(fù)命令次數(shù)的方法是在輸入命令之前按C-u和數(shù)字。如果你有META(或EDIT或 ALT)鍵,則有另一種方法輸入數(shù)字參數(shù):在按住META鍵的時候輸入數(shù)字,我們建議學(xué)習(xí)C-u方法,因為它能在任何終端上工作。
    例如,C-u 8 C-f 向前移動8個字符。
    >> 試著使用帶數(shù)字參數(shù)的C-n或C-p,只用一個命令就把光標(biāo)移動到與本行相鄰的 行上。

    絕大多數(shù)命令把數(shù)字參數(shù)當(dāng)作重復(fù)次數(shù),但也有幾個例外。C-v和M-v就是。當(dāng)給出一個參數(shù),只是上滾或下滾數(shù)字指定的行數(shù)而不是屏數(shù)。比如,C-u 4 C-v滾動4行屏幕。


    >> 現(xiàn)在試試 C-u 8 C-v。
    這將使屏幕滾動8行,如果你想往回滾動的話,鍵入一個帶參數(shù)的M-v。
    如果你正在使用X窗口,在Emacs窗口的左手邊有一個叫做滾動條的矩形區(qū)域。你能通過用鼠標(biāo)點擊滾動條來滾動文本。
    >> 試著在滾動條頂部的高亮區(qū)域點擊中鍵。這將使文本滾動,滾動的位置取決于 你點擊的長短。

    >> 試著按住鼠標(biāo)中鍵上移或下移鼠標(biāo),你將看到當(dāng)你移動鼠標(biāo)時文本會上下滾動。
    * 當(dāng)EMACS掛起時(WHEN EMACS IS HUNG)
    ------------------------------------------------------------------
    當(dāng)Emacs停止響應(yīng)你的命令時,你能用C-g把它安全的停止。當(dāng)一個命令執(zhí)行了太長的時間時你可以用C-g把它終止。
    你也可以用C-g來取消數(shù)字參數(shù)和輸入后又不想執(zhí)行的命令。
    >> 鍵入C-u 100 產(chǎn)生一個值為100的數(shù)字參數(shù),然后按C-g。再按C-f。它只會移動 一個字符,因為你用C-g取消了參數(shù)。


    如果錯誤的輸入了一個 ,你能用C-g消掉它。
    * 禁止命令(DISABLED COMMAND)
    ----------------------------------------------------
    一些Emacs命令是“禁止”的,所以新手不會因偶然而執(zhí)行它。
    如果你鍵入了一個禁止命令,Emacs會顯示一條消息說明這條命令是干什么的,并且問你是否需要執(zhí)行它。
    如果你真的想要執(zhí)行,敲空格鍵繼續(xù)。通常,如果你不想執(zhí)行禁止命令,用“n”來回答。

    >> 輸入 :(一條禁止命令),然后用n來回答。

    * 窗口(WINDOWS)
    -----------------------------
    Emacs 能有好幾個窗口,每一個顯示自己的文本。我們將在后面解釋怎樣對多窗口操作?,F(xiàn)在我們要解釋怎樣去除多余的窗口屏回到基本的單窗口編輯狀態(tài)。這是一個例子:
    C-x 1 一個窗口(也就是除去其他所有的窗口)。
    因為Control-x跟了數(shù)字1。C-x 1使包含光標(biāo)的窗口占滿整個屏幕,屏刪除其他所有窗口。
    >> 把光標(biāo)移動本行并輸入 C-u 0 C-l。
    >> 鍵入Control-h k Control-f。 看這個窗口如何縮小,并在按Control-f的時候出現(xiàn)了一個新的文檔窗口。
    >> 鍵入C-x 1 并且看到那個文檔窗口消失了。

    * 插入和刪除(INSERTING AND DELETING)
    ---------------------------------------------------------------
    如果你要插入文本,只須輸入文本。輸入的字符你能見到,比如A,7,*等等。Emacs 會立即把它們插入。鍵入 (回車鍵)插入一個換行符。
    你能用 刪除你輸入的最后一個字符。 就是鍵盤上標(biāo)著“Del”的鍵。在某些情況下,“Backspace”鍵作用和 一樣,但不總是這樣!


    通常, 立即刪除光標(biāo)前面的那個字符。


    >> 輸入幾個字符,然后用 刪除它們。不必?fù)?dān)心這個文件回被改變;你不會 替換主教程。這只是你的個人拷貝。

    當(dāng)一行文本太長而超過屏幕寬度時,這一行會在屏幕的下一行被“繼續(xù)”。文本的右邊會有一個反斜杠“”表示它被繼續(xù)。
    >> 插入文本直到最右邊,然后再插入。你將看到一個繼續(xù)了的行。
    >> 使用 刪除文本直到行的長度在屏幕的寬度以內(nèi)。繼續(xù)的行將會消失。

    你能像刪除其他任何字符一樣刪除換行符。刪除兩個行間的換行符會使它們合并為一行。如果這一行很長屏幕顯示不下的話,將會用一個繼續(xù)的行來表示。
    >> 把光標(biāo)移動到一行的開頭按 這將使本行和上一行合為一行。
    >> 按 重新插入你刪除的換行符。

    記住大多數(shù)的Emacs命令能接收一個重復(fù)次數(shù)。這包括文本字符,把一個文本字符重復(fù)的插入幾次。
    >> 鍵入這個-- C-u 8 * 來插入 ********

    你現(xiàn)在已經(jīng)學(xué)習(xí)了Emacs的大多數(shù)輸入和排錯的方法。你也能一樣的刪除單詞或行。這是刪除操作的摘要:
    刪除光標(biāo)前面的字符
    C-d 刪除光標(biāo)后面的字符
    M- 除去光標(biāo)前面的單詞
    M-d 除去光標(biāo)后面的單詞
    C-k 除去從光標(biāo)位置到行尾的內(nèi)容
    M-k 除去到當(dāng)前句子的末尾
    注意比較 ,C-d與M ,M-d和C-f,M-f( 不是一個控制字符,但不用擔(dān)心)。C-k和M-k就象C-e,M-e。
    當(dāng)你一次除去不止一個字符時,Emacs將保存著這些文本,所以你可以恢復(fù)它們。恢復(fù)那些被除去的文本稱作“拉(yanking)”。你能在除去文本的同一地方拉回它們,或是在文本的其他地方。你能對文本拉上幾次以產(chǎn)生它們的多個拷貝,拉的命令是 C-y。
    注意“除去(killing)”與“刪除(Deleting)”之間的區(qū)別,被除去的東西能被拉回來,而被刪除的不能。通常除去能除去很多的文本屏保存,而刪除只能除去一個字符,或是空行或空格,并且不保存。


    >> 把光標(biāo)移到一個空行的開頭,鍵入C-k除去這一行。
    >> 按第二次C-k,你將看到剩下的空行也被除去了。



    注意單個的C-k除去行的內(nèi)容,第二個C-k除去行本身,并且使后面的所有行上移。特別要注意數(shù)字參數(shù):它除去很多行和它們的內(nèi)容,這不僅僅是重復(fù)。C-u 2 C-k 除去兩行和它們剩下的空行;而按兩次C-k并不會這樣做。


    要在當(dāng)前光標(biāo)處找回上次被除去的文本;按C-y


    >> 試一試,用C-y把文本拉回來。



    把C-y考慮為你把某人從你這里拿走的東西再拿回來。注意你如果在一行上按了幾次 C-y,所有被除去的文本是存在一起的,所以按一次C-y將拉回全部的行。


    >> 現(xiàn)在就試一下,按幾次C-k。 現(xiàn)在找回被除去的文本;


    >> 按C-y。然后把光標(biāo)下移幾行再按一次C-y,你現(xiàn)在會看到怎樣拷貝這些文本。



    當(dāng)你要拉回一些被除去的文本該怎樣做呢?C-y只能拉回最近被除去的文本。但以前的文本并沒有消失。你能用M-y來恢復(fù)它。當(dāng)你用C-y拉回最近被除去的文本后,換成 M-y可以拉回以前被除去的文本。鍵入一次又一次的M-y可以拉回更早以前被除去的文本。當(dāng)你找到要尋找的文本,不必做任何事來保持它,只須離開拉文本的地方繼續(xù)你的編輯。


    如果你M-y了足夠多的次數(shù),你會回到開始點(最近被除去的)。


    >> 除掉一行,移開,再除掉另一行。 然后用C-y拉回第二行。 然后換成M-y拉回被除掉的第一行。 再按一次M-y看看得到了什么。繼續(xù)按直到拉回被除去的第二行;然后再做幾次。 如果原意的話,你可以給M-y加正的或負(fù)的數(shù)字參數(shù)。





    * 撤銷(UNDO)
    --------------------



    如果你對文本作了一些改動,然后又發(fā)現(xiàn)這樣做是錯誤的,你能用撤銷命令,C-x u 撤銷這些改變。


    通常,一次C-x u撤銷一個改變;如果你在一行上重復(fù)幾次C-x u,就會重復(fù)幾次撤銷操作。


    但有兩個例外:不改變文本的操作(包括光標(biāo)移動和滾屏命令)不算在內(nèi);只能處理20 次。


    >> 用C-k除去這一行,然后按C-x u 它將重現(xiàn)出來。



    C-_是一個可選擇的撤銷命令;它所作的工作和C-x u 完全一樣,只是更容易輸入。 C-_的缺點是有些鍵盤上沒有它,這就是為什么還提供C-x u的原因。在某些終端上你可以按住CTRL的時候再敲/來輸入C-_。C-_或C-x u把數(shù)參數(shù)字當(dāng)作重復(fù)次數(shù)。


    * 文件(FILES)
    -------------------

    為了永久保存你編輯的文本,你必須把它放到一個文件里。否則當(dāng)你退出Emacs的時候它就會消失。你通過“查找(finding)”文件,把你編輯的內(nèi)容放到文件里。(也稱為 “訪問(visiting)文件”)。


    (譯注:為了保持與原文的一致性,把find譯為“查找”,但是這里和后面出現(xiàn)的 “查找文件”指的都是打開文件的意思。)


    查找(finding)一個文件意味著你在Emacs里看文件的內(nèi)容,在多數(shù)情況下,也就是你在編輯它。但是,你用Emacs對它作的改變并不是永久行的,除非你“保存(saving)” 它。所以你可以避免把一個改了一半的文件留在系統(tǒng)上。甚至你保存了文件,Emacs也會把原始文件換個名字保留下來,以防過后你發(fā)現(xiàn)對文件的改動是錯誤的。


    如果你觀察屏幕的你將看見一個開始和結(jié)尾都是破折號的行,并且以“--:**-- TUTORIAL”或之類的東西開始。屏幕的這部分通常顯示你正在訪問的文件的名字?,F(xiàn)在,一個叫做“TUTORAL”的文件,它是你的Emacs教程的個人拷貝。當(dāng)你用Emacs 查找一個文件,文件名會出現(xiàn)在同樣的位置。


    查找和保存文件命令不像前面學(xué)的那些命令。它們都以字符Control-x開始。以 Control-x起頭的是一個完整的命令系列;它們中的許多都是對文件,緩沖,和相關(guān)的東西進(jìn)行操作的。這些命令有兩個,三個或四個字符長。


    關(guān)于查找文件命令的另一件事是你必須給出你需要的文件的文件名。我們說這個命令 “從終端讀取一個參數(shù)”。(在這種情況下,參數(shù)是文件的名字);當(dāng)你鍵入命令C-x C-f后,Emacs會提示你輸入文件的名字。你輸入的文件名會出現(xiàn)在屏幕底部的行上。這個底部的行稱為微型緩沖(minibuffer)用于這類較短的輸入。你能用Emacs本身的編輯命令來編輯文件名。


    當(dāng)你正在輸入文件名(或其他任何微型緩沖區(qū)輸入),你能用命令C-g來取消。


    >> 鍵入命令C-x C-f,然后輸入C-g。這將取消微型緩沖,也取消了C-x C-f命令所使 用的微型緩沖,所以你不查找任何文件。



    當(dāng)你輸完文件名后用 來結(jié)束。然后C-x C-f開始工作,并開始尋找你所選擇的文件。當(dāng)C-x C-f命令結(jié)束后微型緩沖區(qū)也消失了。


    過一小會兒文件的內(nèi)容就會顯示在屏幕上,然后你就能對它進(jìn)行編輯了。當(dāng)想永久保留你的改動時用命令:


    C-x C-s 保存文件(save the file)。


    這個操作會把Emacs里的文本拷貝到文件里。在你第一次作的時候,Emacs把原始文 件改為一個新名字以使它不至于丟失。新名字是在原來名字的后面加一個“~”。


    保存結(jié)束后,Emacs打印出被寫的文件的文件名。你應(yīng)當(dāng)經(jīng)常的保存,萬一系統(tǒng)崩潰 的話你不至于丟失太多的工作。


    >> 鍵入C-x C-s來保存你的教程的拷貝。屏幕的底部會打印出“Wrote.....TUTORIAL”。



    注意:在某些系統(tǒng)上,輸入C-x C-s 會把屏幕凍結(jié)住使你從Emacs看不到更多的輸出。這 表示這個操作系統(tǒng)的“特性”叫做“控制流程”,它攔截了C-x不讓它到達(dá)Emacs那里。 要使屏幕解凍,輸入C-q,然后看Emacs手冊里的“Spontaneous Entry to Incremental Search”一節(jié),按上面的建議來對付這種“特性”。


    你能查找一個已存在的文件,來查看它或編輯它。你也可以查找一個尚未存在的文件。這是 Emacs:里創(chuàng)建文件的方法:查找文件,將會出現(xiàn)一個空白,然后插入文件的文本。當(dāng)你 “保存(saving)”的時候,Emacs將會用你插入的文本創(chuàng)建文件。從那時候起,你可以認(rèn)為你在編輯一個存在的文件了。




    * (緩沖)BUFFERS
    --------------------------



    如果你用C-x C-f查找第二個文件,第一個文件仍然留在Emacs里。你可以再用C-x C-f查找一次來切換回去。用這種方法你在Emacs里有很多文件。


    >> 輸入C-x C-f foo 來建立一個名為foo的文件。然后插入一些文本,編輯它,并 用C-x C-s來保存“foo”。 最后輸入C-x C-f TUTORIAL 以回到本教程。




    Emacs把每個文件的文本都保存在一個叫“緩沖(buffer)”的東西里。查找(打開)一個文件就會在Emacs里產(chǎn)生一個新的緩沖。要看你當(dāng)前運行的Emacs里存在的緩沖列表,輸入:


    C-x C-b 列出緩沖(list buffers)


    >> 輸入 C-x C-b



    觀察每個緩沖都有一個名字,它可能也有一個它所保存的文件的文件名。一些緩沖不對應(yīng)文件。比如,叫“*Buffers List*”的緩沖沒有任何文件。這個緩沖只包含由C-x C-b產(chǎn)生的緩沖列表。你在Emacs窗口里看到的任何文本都是某個緩沖的一部分。


    >> 輸入 C-x 1 消除緩沖列表。



    如果你對一個文件的文本作了改動,然后查找另一個文件,第一個文件并不保存。它的改變保存在Emacs里,在那個文件的緩沖里。被建立或編輯的第二個文件的緩沖并不影響第一個的。這一點很有用,但這也意味著要有一個便捷的方法來保存第一個文件的緩沖。如果要用 C-x C-f切換回去只是為了按C-x C-s保存它將會是一件令人討厭的事。所以我們用


    C-x s 保存緩沖(save the buffer)


    C-x s 向你詢問每個改動過但未存盤的緩沖,對每個這樣的緩沖都詢問是否保存。


    >> 插入一行文本,然后按C-x s。 將會問你是否保存叫TUTORIAL的緩沖。 輸入“y”來回答是。





    * 擴展命令集(EXTENDING THE COMMAND SET)
    -----------------------------------------------------------------------



    有太多的Emacs命令,大大超過了Contorl和meta加上字符所能表示的數(shù)量。Emacs用X(擴展 eXtand)命令來解決這個問題。有兩種風(fēng)格:


    C-x 字符擴展,后跟一個字符。
    M-x 名字命令擴展,后跟一個長名字。


    這些命令通常有用,但不如你已經(jīng)學(xué)過的那些命令使用的頻繁。你已經(jīng)見過了它們中的兩個:文件命令C-x C-f 用于查找和C-x C-s用于保存。


    另一個例子是結(jié)束Emacs的命令C-x C-c(不必?fù)?dān)心你所作的改動會丟失,在退出Emacs 之前,C-x C-c會提示你保存每一個改動過的文件)。


    C-z命令用于*臨時*退出Emacs,所以你能回到原來運行的Emacs里。在允許這樣做的系統(tǒng)上,C-z把Emacs“掛起”;就是說回到外殼(shell)下,但并不破壞運行的Emacs。在大多數(shù)外殼上,你能用‘fg'命令或‘%emacs'來繼續(xù)Emacs。


    在不支持掛起的系統(tǒng)上,C-z建立一個子外殼(subshell)運行于Emacs下以使你能運行其他程序然后回到Emacs;這并不是真正的“退出”Emacs。在這種情況下,通常從子外殼回到Emacs的外殼命令是‘exit'。 有很多C-x 命令,這是已學(xué)過的一個列表:


    C-x C-f 查找文件
    C-x C-s 保存文件
    C-x C-b 緩沖列表
    C-x C-c 退出Emacs


    C-x u 撤銷操作


    被稱作擴展命令的命令的使用頻率都不太高?;蛘呤侵辉谀承┠J较率褂?。一個例子是替換字符串的命令,它在全文里把字符串替換為其他的。當(dāng)你鍵入M-x, Emacs會在屏幕的底部提示你輸入命令;在這種情況下,是“replace-string”。比如輸入“repl s ”, Emacs會把命令補全。用 來結(jié)束命令。


    替換字符串命令要求兩個參數(shù)--要被替換的字符串和用來替換的字符串。你必須用 來結(jié)束兩個參數(shù)。


    >> 把光標(biāo)移上兩行,然后輸入M-x repl s changed altered 。 注意現(xiàn)在這一行改變了:你把光標(biāo)初始位置后的所有單詞c-h-a-n-g-e-d替換為了 “altered”





    * 自動保存(AUTO SAVE)
    ------------------------------------



    當(dāng)你改動了一個文件還未存盤的話,所作的改動也許會由于系統(tǒng)崩潰而丟失。為防止這種情況發(fā)生,Emacs在編輯時為每個文件提供了“自動保存(auto save)”。自動保存的文件的文件名前后都有一個#號;例如,如果你編輯的文件名叫“hello.c”,自動保存的文件的文件名就叫“#hello.c#”。當(dāng)你正常的保存了文件后,Emacs會刪除這個自動保存的文件。如果遇到死機,你能打開那個文件后按M-x recover file 來恢復(fù)你的編輯,(是你編輯的文件而不是自動保存的文件)。當(dāng)提示確認(rèn)時,輸入yes 來繼續(xù)恢復(fù)自動保存的數(shù)據(jù)。




    * 回顯區(qū)域(ECHO AREA)
    ------------------------------------



    如果Emacs發(fā)現(xiàn)你輸入命令的速度很慢的話它會在屏幕底部為你顯示出來,這個區(qū)域叫 “回顯區(qū)域”。




    * 模式行(MODE LINE)
    ---------------------------------



    回顯區(qū)域上面的一行稱為“模式行(mode line)”。模式行顯示與下面類似的東西:


    --**-Emacs: TUTORIAL (Fundamental)--L670--58%----------------


    這一行給出了有關(guān)你在編輯的文件和Emacs狀態(tài)的有用信息。


    你已經(jīng)知道了文件名意味著什么。--NN%--指出你現(xiàn)在在文本里的位置;它意味著上面還有NN%的文本。如果是在文件的開頭,會用--Top-- 來代替--0%--。如果是在行的末尾,會顯示--Bot--。如果你正在看的文本內(nèi)容很少,可以全部顯示在屏幕上,模式行會說 --All--。


    前面的星號表示你已經(jīng)改動過文本了。一旦你保存了文件或打開了一個新文件,模式行的這部分就不是星號而是破折號了。


    模式行上括號里的部分是現(xiàn)在的編輯模式?,F(xiàn)在是缺省的基本(Fundamental)模式。它是 “主模式(major mode)”的一種。


    Emacs有很多不同的主模式。有些意味著不同的語言或不同的文本。如Lisp模式(Lisp mode),文本模式(text mode)等等。在任何時候有且只能有一種主模式被激活。并且它的名字會出現(xiàn)在現(xiàn)在顯示“Fundamental”的位置上。


    每一個主模式都有些自己的命令。就象不同的編程語言的注釋看起來不同一樣。每種主模式插入的注釋也不同??梢杂脭U展命令切換進(jìn)某種主模式。例如,M-x fundamental-mode 是切換進(jìn)基本模式。


    >> 輸入 M-x text-mode



    不必?fù)?dān)心,沒有命令會給Emacs帶來很大改變。但是你可以看到現(xiàn)在M-f和M-b把省略號當(dāng)作單詞的一部分。而先前,在基本模式里,M-f 和M-b把省略號當(dāng)成當(dāng)成分隔符。


    主模式通常作諸如此類微小的變化:大多數(shù)命令在每個主模式里作“同樣的工作”,但又有些微小的不同。


    要觀看關(guān)于你現(xiàn)在的主模式的文檔,按C-h m。


    >> 鍵入C-u C-v一次和多次使本行接近屏幕的頂端。
    >> 輸入C-h m ,看看文本模式和基本模式有些什么不同。
    >> 按C-x 1 從屏幕上關(guān)掉這個文檔。



    主模式之所以叫做主模式是因為也存在從模式,從模式與主模式完全不同。每個從模式可以自己打開或者關(guān)閉,獨立于所有其他從模式,也獨立于你的主模式。所以你可以不用從模式或者同時用很多種從模式。


    有一種從模式很有用,特別是在編輯英文文本時。它是自動填充模式(auto fill mode)。當(dāng)這個模式打開的時候,當(dāng)輸入的文本過寬的時候就會自動折行。


    你能用M-x auto-fill-mode 來打開自動填充模式。如果此模式已經(jīng)打開M-x auto- fill-mode 則把它關(guān)閉。我們把這叫做切換開關(guān)。


    >> 輸入M-x auto-fill-mode 。然后插入一些“asdf”直到看到這行被分為兩行。你必須在中間放一些空格,只有到空格的時候才會換行。



    通常邊界寬度是70,但你能用帶數(shù)字參數(shù)的C-x f 命令來改變它。


    >> 鍵入帶參數(shù)20的C-x。(C-u 20 C-x f) 然后輸入一些文本看現(xiàn)在每行只有20個字符了。然后用C-x f把它改回70。



    如果你在一個段落的中間產(chǎn)生了改變,自動填充模式將不會重新填充。要想重新填充段落,當(dāng)光標(biāo)在段落里的時候按M-q。


    >> 把光標(biāo)移到上一段按 M-q。

    * 搜索(SEARCHING)
    -----------------------------

    Emacs 能朝前和朝后搜索字符串(指相鄰的一些字符或單詞)。搜索是一個移動光標(biāo)的操作,它把光標(biāo)移動到字符串出現(xiàn)的下一個地方。


    Emacs 的搜索命令和其他大多數(shù)編輯器不同,它是“增量式(incremental)”的,這意味著搜索在你鍵入字符串時就開始了。


    開始一個向前搜索的命令是C-s,C-r是往回搜索。但等等,先別忙。


    當(dāng)你輸入C-s是你將注意到在回顯區(qū)域會出現(xiàn)一個字符串“I-search”。這告訴你Emacs開始了一個增量搜索,并在等待你輸入要搜索的東西。 結(jié)束查詢。


    >> 現(xiàn)在鍵入C-s開始一個搜索。慢慢的輸入單詞‘cousor',在輸入每一個字母的時候停頓一 下,注意看光標(biāo)發(fā)生了什么。
    >> 再輸入一次C-s,來搜索“cursor”出現(xiàn)的下一個地方。
    >> 現(xiàn)在輸入 四次看看光標(biāo)移到了哪里。
    >> 輸入 結(jié)束搜索。


    看到發(fā)生什么了嗎?在Emacs的增量搜索里,你輸入多少字符串它就試著搜索這些字符出現(xiàn)的地方。到字符串出現(xiàn)的下一個地方,只須再按一次C-s。要搜索的字符串不存在的話,Emacs 會發(fā)出蜂鳴并告訴你當(dāng)前的搜索“失敗(failing)”,按 C-g 也是終止搜索。


    注意:在某些系統(tǒng)上,輸入 C-s 會把屏幕凍結(jié)住使你從Emacs看不到更多的輸出。這 表示這個操作系統(tǒng)的“特性”叫做“控制流程”,它攔截了C-s不讓它到達(dá)Emacs那里。 要使屏幕解凍,輸入C-q,然后看Emacs手冊里的“Spontaneous Entry to Incremental Search”一節(jié),按上面的建議來對付這種“特性”。
    如果你在搜索的過程里按了 ,你將注意到要搜索的字符串的最后一個字符會被刪除并且光標(biāo)會回到上一個被搜索到的地方。比如,假設(shè)你鍵入了“c”,將會搜索“c”第一次出現(xiàn)的地方。然后如果你鍵入“u”,光標(biāo)將移到“ cu”第一次出現(xiàn)的地方。現(xiàn)在鍵入 。這將從搜索的字符串里把“u”刪掉,這時光標(biāo)回到“c”第一次出現(xiàn)的地方。


    如果你在搜索時按了Control或meta鍵加字符(少數(shù)幾個少數(shù)命令例外,如C-s和C-r),搜索將被終止。


    C-s向當(dāng)前光標(biāo)的后面搜索字符串出現(xiàn)的地方。如果你需要搜索前面文本里的東西,用C-r來代替。我們所介紹的C-s的每個特性C-r也支持,除了方向相反。


    * 多窗口(MULTIPLE WINDOWS)
    ------------------------------------------------


    Emacs有一個非常好的特性是能同時在屏幕上顯示不止一個的窗口。


    >> 把光標(biāo)移到本行上按C-u 0 C-l。


    >> 現(xiàn)在按C-x 2,它把屏幕分裂成兩個窗口,每個窗口都顯示本教程。光標(biāo)在上面的窗口里。


    >> 按C-M-v 滾動到下面的窗口里。(如果你沒有一個真正的Meta鍵,那么按ESC C-v)

    >> 按 C-x o (“o” 指 “其他(other)”) 把光標(biāo)移到到下面的窗口里。
    >> 用 C-v 和 M-v 滾動下面窗口里的文本。 在上面的窗口里看本教程。


    >> 再次按 C-x o 使光標(biāo)回到上面的窗口里。 現(xiàn)在光標(biāo)象以前一樣在上面的窗口里了。



    你能一直用C-x o在窗口間切換。每個窗口都有它自己的光標(biāo)位置,但僅有一個窗口能顯示活動的光標(biāo)。所有的編輯命令都發(fā)生在那個顯示光標(biāo)的窗口上。我們把這個窗口叫做“選中窗口( selected window)”。


    當(dāng)你在一個窗口里編輯文本,而用另一個窗口作參考時命令C-M-v非常有用。你總是能把光標(biāo)留在所編輯的地方,而用C-M-v來翻閱另一窗口。


    C-M-v 是 CONTROL-META 加字符的一個例子。 如果你有一個真正的META 鍵,你能同時按住 CTRL 和 META 再按“v”來輸入C-M-v。CTRL 和 META 誰先按誰后按無所謂。


    如果你沒有一個真正的META 鍵, 你可以用 ESC 來代替。這時候次序是有關(guān)系的: 你必須讓 ESC 跟在 CTRL-v后面; 否則 CTRL-ESC v 將不工作。 這是因為 ESC 是一個有意義的字符而不是一個修飾字符。


    >> 輸入 C-x 1 (在上面的窗口里) 以消除下面的窗口。



    (如果你在下面的窗口里鍵入C-x 1,將會把上面的窗口去掉??梢园堰@個命令看作是“只保留你現(xiàn)在在的那個窗口。)


    你不必一定要在兩個窗口里顯示同樣的緩沖。如果你在一個窗口里鍵入C-x C-f查找文件,另一個窗口的內(nèi)容不會改變。你能獨立的在每個窗口里查找文件。


    這是讓兩個窗口顯示不同內(nèi)容的另一種方法:


    >> 在你輸入的文件名后再輸入C-x 4 C-f,然后用 結(jié)束。會看到指定的文件出現(xiàn)在下面 的窗口里。光標(biāo)也在那里面。


    >> 鍵入C-x o 回到上面的窗口,然后輸入C-x 1刪掉下面的窗口。



    * 遞歸編輯層(RECURSIVE EDITING LEVELS)
    ----------------------------------------------------------------

    有時候你會進(jìn)入“遞歸編輯層(recursive editing level)”。由模式行上的方括號指示。它在主模式名的括號外面。例如你也許會看到(Fundamental)變成了[(Fundamental)]。


    要退出遞歸編輯層,按ESC ESC ESC。這是一個通用的退出命令,你也可以用它除去額外的窗口,或者退出微型緩沖。


    >> 輸入 M-x 進(jìn)入一個微型緩沖; 然后用 ESC ESC ESC 離開。

    你不能用C-g來退出遞歸編輯層。這是因為C-g只能取消在遞歸編輯層里面的命令。


    * 獲取更多的幫助(GETTING MORE HELP)
    --------------------------------------------------------------

    在本教程里我們試著為你開始使用Emacs提供了足夠多的信息。但是有關(guān)Emacs的信息實在是太多以至于不能全部都在這里說明。但是,你還應(yīng)該學(xué)習(xí)更多有關(guān)Emacs的東西,因為它另外還有很多有用的特性。Emacs提供了很多讀取有關(guān)命令的文檔的命令。這些“幫助”命令都以 Control-h開頭,叫做“幫助字符”。


    為了使用幫助特性,輸入字符C-h,然后再輸入一個字符來說明你需要哪種幫助。如果你真的不知道,輸入C-h ? 然后 Emacs會告訴你它能給你什么樣的幫助。如果你輸入了C-h 又覺得不需要任何幫助,你可以用C-g來取消它。


    (在有的地方,C-h的作用被改變了。如果按C-h在屏幕的底部沒有出現(xiàn)有關(guān)幫助的信息的話,試試用F1和M-x help RET來代替。)


    最基本的幫助特性是C-h c。輸入C-h,然后是字符 c,然后輸入一個命令字符和序列;然后 Emacs 會顯示這個命令的簡潔的描述。


    >> 輸入 C-h c Control-p.

    顯示的消息看起來會象這樣:


    C-p runs the command previous-line


    這告訴你“功能的名字”。功能的名字主要用于對Emacs的功能擴充和定制。但因為功能的名字指出了命令的用途,所以最好不要改動它。


    C-h c后面可跟多字符命令,比如 C-x C-s 和 (如果你沒有 META 或者 EDIT 或者 ALT 鍵) v 。


    要獲取有關(guān)命令的更多信息,用C-h k 代替 C-h c。


    >> 輸入 C-h k Control-p.



    這將在一個Emacs窗口里顯示命令的文檔。當(dāng)你讀完后可以用C-x 1除去幫助文本。如果不想馬上離開,你可以一邊編輯一邊參考幫助文本,然后再按C-x 1。


    這是一些有用的 C-h 選項:


    C-h f 描述一個功能,在你輸入了這個功能的名字后。

    >> 輸入 C-h f previous-line 。 將打印出C-p命令所實現(xiàn)的所有功能。



    C-h a 命令查找。輸入一個關(guān)鍵字,Emacs將列出所有名字里有這個關(guān)鍵字的命令。 包括所有以Meta-x開始的命令。對有些命令,C-h a 也將列出實現(xiàn)同一功能的 幾個命令序列。


    >> 輸入 C-h a file .




    這將在窗口里顯示所有名字里有單詞“file”的M-x命令。


    >> 輸入 C-M-v 來滾動幫助窗口,做上幾次。


    >> 輸入 C-x 1 來刪除幫助窗口。





    * 總結(jié)(CONCLUSION)
    --------------------------------

    記住,永遠(yuǎn)都用C-x C-c來退出Emacs。用C-z來退到一個臨時的外殼里,以使你過后還能回到 Emacs。
    本教程盡量讓所有的初學(xué)者都能理解,如果你發(fā)現(xiàn)有些東西不清楚的話,別責(zé)備你自己-抱怨吧!

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲尹人九九大色香蕉网站| 国产亚洲成在线播放va| 夜夜爽免费888视频| 成人特级毛片69免费观看| 亚洲AV无码专区亚洲AV伊甸园| 国产免费久久精品99re丫y| 免费一级毛片在线播放视频免费观看永久 | 亚洲高清最新av网站| 国内精品免费在线观看| 亚洲精品一卡2卡3卡四卡乱码| 亚洲日产韩国一二三四区| 最近2019中文免费字幕| 国产成人AV免费观看| 亚洲av永久中文无码精品| 久久综合图区亚洲综合图区| 日本免费人成黄页网观看视频 | 日韩精品在线免费观看| 亚洲精品国产首次亮相| 亚洲av女电影网| 亚洲国产成人久久笫一页| 日韩国产免费一区二区三区| 99免费精品视频| 亚洲成AV人片高潮喷水| 亚洲日本香蕉视频观看视频| 亚洲精品无码成人片在线观看 | 亚洲av永久无码精品漫画| 国产成人免费a在线视频app| 99久久国产热无码精品免费| 美女无遮挡拍拍拍免费视频| 亚洲AV无码男人的天堂| 亚洲伊人色一综合网| 亚洲成色在线影院| 国产成人麻豆亚洲综合无码精品 | 日本免费久久久久久久网站| 一级特黄录像免费播放中文版| 中文字幕精品三区无码亚洲| 亚洲色成人网一二三区| 亚洲av无码无在线观看红杏| 国产亚洲精品影视在线产品| 亚洲?V无码乱码国产精品 | 亚洲国产二区三区久久|