Emacs之30分鐘入門教程

2021-06-12 01:33:33 字數 4068 閱讀 5635

簡介

使 用 emacs可以完全拋棄滑鼠,不必在打字的同時把手移開鍵盤找滑鼠,不必在 一大堆深藏不露的選單裡尋找那些常用功能,也不必被一條條工具欄遮擋視線。大多數的 windows 編輯器都有一條選單欄,n條工具欄。選單裡有無數選項,很多選項都會彈出乙個對話方塊,這個對話方塊又會帶有層層疊疊的標籤,每個標籤裡又有很多輸入框很多按鈕。乙個簡單的把所有字母大寫的命令就要在選單裡翻半 天,說不定還找不到,而他們的幫助資訊又總是不知所云。而emacs 的大多數操 作都可以通過快捷鍵或直接輸入命令完成,而且有著極好的幫助系統,可以通過多種方式找到你想要的命令或按鍵。

不要被 emacs 簡單的外觀和與眾不同的操作方式迷惑,上手emacs 並不是什麼 難事,看一遍 tutorial 就可以了,emacs23 已經帶著多種語言版本的快速指南, 包括中文。仍然覺得tutor 太長?那可以繼續看本文。

首先說明一下,emacs 的按鍵表示方法。最常用的是 ctrl 和 alt 的組合鍵, 分別用 c 和 m 表示,比如:

這樣你就可以簡單的用 c 和 m 表示 ctrl 和 alt了。shift 可以用 s 表示。

鍵盤上的特殊按鍵用<>表示,比如回車,空格,方向鍵上, 等等,一看就知道什麼意思。

不必追究為什麼把 alt 寫為m,因為你這次只有30分鐘時間。

啟動和退出

windows 使用者可以用 emacs bin 目錄下的 runemacs.exe 啟動,linux 使用者鍵 入 emacs& 就可以了。

啟動 emacs 後應該能看到這個介面:

退出 emacs 按 c-x c-c (就是 ctrl+x 接著按ctrl+c)。

開啟和儲存檔案

啟 動 emacs 後,按 c-x c-f,minibuffer (就是 emacs 最下面一條) 會提示路徑,你可以在這裡輸入路徑名和檔名,或者回車看到這個目錄列表。可以 用方向鍵移動游標到檔名上回車開啟檔案,或者在子目錄上進入子目錄,在 .. 上進入上一層目錄。

開啟檔案後像往常一樣編輯,隨便按字母鍵輸入一些字元。按 c-x c-s儲存檔案。按 c-x k 回車關閉這個 buffer。

小結:按鍵說明

這 裡可以看到很多 c-x 開頭的組合鍵,這些通常都是 emacs 預先定義,全域性性 的命令。按了 c-x 不動,一秒鐘後minibuffer 提示 c-x- ,表示 emacs 正在 等待使用者按下乙個鍵。如果你想取消這次按鍵,可以接下去按c-g,minibuffer 提示 c-x c-g is undefined 也就是說 emacs 什麼都沒有執行。c-g 一般都是取消命令,取消按鍵。如果按了 c-x c-h 就會出現乙個幫助 buffer,裡面是以 c-x 開頭的按鍵幫助。c-h是乙個幫助按鍵。如何獲得更多的幫助,會在之後的 小節介紹。c-c 開頭的按鍵通常是使用者自定義的按鍵和擴充套件包或擴充套件模式定義的按鍵,同樣也可以獲得幫助資訊。

選定區域,剪下、複製、貼上

好了,到現在為止你大概一共花了 10 分鐘吧。

你 可以用滑鼠拖選一塊區域。當然,最好用鍵盤。按c-@,minibuffer 提示 mark set,設定了乙個 mark。然後移動游標,這時候你就選定了游標和 mark 之間的區域。什麼都看不到?你可以按 c-w,這塊區域就消失了,c-w 是剪下。按 c-x u 可以撤銷上一次的剪下,c-x u是取消。你肯定想看到你到底選中了哪塊 區域,可以按m-x 然後輸入 transient-mark-mode ,回車。這次你就可以看到你選中了哪塊區域了。m-x 是執行 emacs 命令。

emacs 有乙個很有用的功能,在你選定了區域之後按 c-x c-x可以交換游標 (point) 和 mark 的位置,這樣你就可以修改調整你選定的區域了。

按 c-g 取消選定的區域。

重新用 c-@ 選定一塊區域,按 m-w,這是複製,移動游標到別處,按c-y,這是 貼上。緊接著再按一次 m-y,這時可以看到貼上的內容變成了上一次剪下的內容。 再按 m-y又變成之前一次複製的內容。

c-k 可以剪下一行。連續的 c-k 會把剪下的內容放在一起,一次c-y 就可以把 之前的 n 行一起貼上。

c-x u 可以撤銷,不過這個撤銷和常規 windows程式的撤銷不太一樣。按了 c-x u 撤銷後,如果移動一下游標,再按一次 c-x u,可以撤銷之前的撤銷命令。 這樣相當於是redu。

小結:

查詢其 他 windows 程式的查詢通常會跳出乙個對話方塊,這很討厭,會遮住文字內容, 有時候我就會忘了我到底要找什麼。emacs就不會這樣。按 c-s 是查詢, minibuffer 提示 i-search: 接下來你可以輸入你要找的詞,比如想找windows, 輸入 w,emacs 開始找到 w,游標移動到 w 上,接著輸入 i,emacs 找到 wi, 並注意到emacs會同時高亮所有的 wi,接著輸入 n,emacs 找到 win,等等。這 就是 incremetalsearch,它的好處是,你想要找 windows,但實際上你只要輸 入 win 就能定位到 windows 上了,不需要繼續輸入dows 了。繼續按 c-s 找下 乙個匹配的。c-r 往回查詢。按回車或者方向鍵結束本次查詢,再按兩次 c-s 重 復上次查詢,按c-g 取消查詢,游標回到原處。

c-s 或 c-r 也可以用作游標定位,比如想要移到前面 emacs處,就可以 c-r emacs,效率很高,可以說是指哪打哪。

如果查詢輸入的全是小寫,那麼這次查詢是大小寫不敏感的,如果輸入字元中有大寫字母,那麼這次查詢就是大小寫敏感的。很智慧型吧。

c-m-s 或 c-m-r 是正規表示式查詢。或者在 c-s 之後按m-r 也可以切換到正則 表示式查詢。這裡不仔細講 emacs 的正規表示式是怎麼樣的。那樣會多花乙個小 時。

替換m-% 是 query-replace,輸入查詢內容和替換內容,然後 emacs 會詢問是否要 替換,y 替換,n 不替換,!替換游標之後所有,q 結束,? 可以得到幫助。

emacs的替換有乙個很好的特性,可以只在選定區域內進行替換。這樣就可以放 心大膽地使用 ! 替換所用,而不用擔心超出範圍了。

c-m-% 是正規表示式的替換。

小結:

到這裡你用了大概20分鐘,基本的文字編輯功能都有了。

接著你可以自己摸索了。

emacs 提供了極其強大的幫助系統。

c-h t 是乙個 tutorial,現在也有不同語言的tutorial。按 m-x 輸入 help-with-tutorial-spec-language可以選擇不同的語言。按 emacs 可以幫你補全命令。按兩次 會有補全的提示。

c-h a 是 aproposcommand,你可以輸入幾個簡單的單詞,emacs 可以幫你找到相應的命令,這個幫助非常好用。比如你想把乙個單詞全部大寫,但不知道該怎 麼做,可以 c-h a 輸入 upcase word 或者up word,emacs 就會找到幾個命令, 其中乙個是 upcase-word,並且對應的按鍵是 m-u,你只要把游標移動到單詞前按 m-u 就可以了。

c-h k 是描述某個按鍵會執行什麼。例如你要看看 m-;是幹什麼的,按 c-h k, 接著按 m-; 你就會看到 m-; 會執行 comment-dwim,dwim 是 do what imean 的縮寫,這個命令會注釋或反注釋你選定的區域,如果沒有選定區域,會在這一 行後面加上注釋。很聰明的命令吧。

c-h c 簡單描述某個按鍵執行什麼。

c-h f 描述某個函式

c-h v 描述某個變數

c-h 會提供很多很多幫助資訊,c-h ?會顯示有哪些幫助資訊。

emacs 配置使用的語言是 elisp,emacs 附帶非常詳細的elisp 手冊,可以通 過 m-x info 得到。配置 .emacs 一般只需要幾個簡單語句,比如:

這裡提供乙個簡單的 .emacs檔案: 

quick.emacs.el

你可以把它複製到你的 home 目錄下並改名為 .emacs注意有個.

或者用 runemacs.exe -q -lquick.emacs.el 來指定 emacs 使用這個配置檔案。

到 這裡差不多就是30分鐘吧,介紹一些文字編輯的基本操作。只是為了說明上手 emacs 其實很簡單,而且幾乎每一樣操作都有比普通windows 文字編輯器更好 的特性,比如可以任意調整已選定的區域,更好的複製貼上機制,更好的撤銷機 制,更好的 isearch查詢方式,可以在區域內替換,強大得多的幫助系統,沒 有任何限制的擴充套件性。用了幾天或幾個星期後就會覺得其他的編輯是多麼麻煩和弱小。

MarkDown30分鐘入門教程

編輯帶格式文件不知道markdown,那你絕對out了.大名鼎鼎的github,裡面所有專案的readme都是用這種格式寫的.帶格式文件型別很多了,包括完全不可文字閱讀的,類似word,還有半可讀的html,xml等等,當然也包括markdown.markdown 的目標是實現 易讀易寫 易讀包括格...

正規表示式30分鐘入門教程

30分鐘內讓你明白正規表示式是什麼,並對它有一些基本的了解,讓你可以在自己的程式或網頁裡使用它。最重要的是 請給我30分鐘,如果你沒有使用正規表示式的經驗,請不要試圖在30秒內入門 除非你是超人 別被下面那些複雜的表示式嚇倒,只要跟著我一步一步來,你會發現正規表示式其實並沒有你 想像中的那麼困難。當...

正規表示式30分鐘入門教程 2

有時需要查詢不屬於某個能簡單定義的字元類的字元。比如想查詢除了數字以外,其它任意字元都行的情況,這時需要用到反義 表3.常用的反義 語法 說明 w 匹配任意不是字母,數字,下劃線,漢字的字元 s 匹配任意不是空白符的字元 d 匹配任意非數字的字元 b 匹配不是單詞開頭或結束的位置 x 匹配除了x以外...