已有 280 次閱讀2011-1-7 22:59|個(gè)人分類(lèi):@emacs|系統分類(lèi):教學(xué)心得|關(guān)鍵詞:emacs ,linux, 編輯器, 編程
Emacs 被很多人稱(chēng)作世界上最強大的編輯器。用戶(hù)從無(wú)數高手到IT民工到普通文本編輯器用戶(hù),可以符合幾乎所有人的需求。甚至可以在Emacs 里運行音樂(lè )播放器、網(wǎng)頁(yè)瀏覽器等等,Emacs 更像是一個(gè)操作平臺。
使用 Emacs可以完全拋棄鼠標,不必在打字的同時(shí)把手移開(kāi)鍵盤(pán)找鼠標,不必在一大堆深藏不露的菜單里尋找那些常用功能,也不必被一條條工具欄遮擋視線(xiàn)。大多數的Windows 編輯器都有一條菜單欄,n條工具欄。菜單里有無(wú)數選項,很多選項都會(huì )彈出一個(gè)對話(huà)框,這個(gè)對話(huà)框又會(huì )帶有層層疊疊的標簽,每個(gè)標簽里又有很多輸入框很多按鈕。一個(gè)簡(jiǎn)單的把所有字母大寫(xiě)的命令就要在菜單里翻半天,說(shuō)不定還找不到,而他們的幫助信息又總是不知所云。而 Emacs的大多數操作都可以通過(guò)快捷鍵或直接輸入命令完成,而且有著(zhù)極好的幫助系統,可以通過(guò)多種方式找到你想要的命令或按鍵。
不要被 Emacs 簡(jiǎn)單的外觀(guān)和與眾不同的操作方式迷惑,上手 Emacs 并不是什么難事,看一遍 Tutorial 就可以了,Emacs23 已經(jīng)帶著(zhù)多種語(yǔ)言版本的快速指南,包括中文。仍然覺(jué)得 Tutor 太長(cháng)?那可以繼續看本文。
首先說(shuō)明一下,Emacs 的按鍵表示方法。最常用的是 Ctrl 和 Alt 的組合鍵, 分別用 C 和 M 表示,比如:
這樣你就可以簡(jiǎn)單的用 C 和 M 表示 ctrl 和 alt 了。Shift 可以用 S 表示。
鍵盤(pán)上的特殊按鍵用<>表示,比如回車(chē),空格,方向鍵上, 等等,一看就知道什么意思。
啟動(dòng) Emacs 后,按 C-x C-f,minibuffer (就是 Emacs 最下面一條) 會(huì )提示路 徑,你可以在這里輸入路徑名和文件名,或者回車(chē)看到這個(gè)目錄列表??梢?用方向鍵移動(dòng)光標到文件名上回車(chē)打開(kāi)文件,或者在子目錄上進(jìn)入子 目錄,在 .. 上進(jìn)入上一層目錄。
打開(kāi)文件后像往常一樣編輯,隨便按字母鍵輸入一些字符。按 C-x C-s 保存文件。按 C-x k 回車(chē)關(guān)閉這個(gè) buffer。
這里可以看到很多 C-x開(kāi)頭的組合鍵,這些通常都是 Emacs 預先定義,全局性 的命令。按了 C-x 不動(dòng),一秒鐘后 minibuffer 提示 C-x- ,表示Emacs 正在 等待用戶(hù)按下一個(gè)鍵。如果你想取消這次按鍵,可以接下去按 C-g,minibuffer 提示 C-x C-g isundefined 也就是說(shuō) Emacs 什么都沒(méi)有執行。C-g 一般都是取消命令,取消按鍵。如果按了 C-x C-h 就會(huì )出現一個(gè)幫助buffer,里面是以 C-x 開(kāi)頭的按鍵幫助。C-h 是一個(gè)幫助按鍵。如何獲得更多的幫助,會(huì )在之后的小節介紹。C-c開(kāi)頭的按鍵通常是用戶(hù)自定義的按鍵和擴展包或擴展模式定義的 按鍵,同樣也可以獲得幫助信息。
你可以用鼠標拖選一塊區域。當然,最好用鍵盤(pán)。按 C-@,minibuffer提示 Mark set,設定了一個(gè) mark。然后移動(dòng)光標,這時(shí)候你就選定了光標和 Mark 之 間的區域。什么都看不到?你可以按C-w,這塊區域就消失了,C-w 是剪切。按 C-x u 可以撤銷(xiāo)上一次的剪切,C-x u 是取消。你肯定想看到你到底選中了哪塊區域,可以按M-x 然后輸入 transient-mark-mode ,回車(chē)。這次你就可以看到你選中了哪塊區域了。M-x 是執行 Emacs命令。
Emacs 有一個(gè)很有用的功能,在你選定了區域之后按 C-x C-x 可以交換光標 (point) 和 Mark 的位置,這樣你就可以修改調整你選定的區域了。
按 C-g 取消選定的區域。
重新用 C-@ 選定一塊區域,按 M-w,這是復制,移動(dòng)光標到別處,按 C-y,這是粘貼。緊接著(zhù)再按一次 M-y,這時(shí)可以看到粘貼的內容變成了上一次剪切的內容。 再按 M-y 又變成之前一次復制的內容。
C-k 可以剪切一行。連續的 C-k 會(huì )把剪切的內容放在一起,一次 C-y 就可以把之前的 n 行一起貼上。
C-x u 可以撤銷(xiāo),不過(guò)這個(gè)撤銷(xiāo)和常規 windows 程序的撤銷(xiāo)不太一樣。按了 C-x u 撤銷(xiāo)后,如果移動(dòng)一下光標,再按一次 C-x u,可以撤銷(xiāo)之前的撤銷(xiāo)命令。 這樣相當于是 redu。
小結:
其他 windows程序的查找通常會(huì )跳出一個(gè)對話(huà)框,這很討厭,會(huì )遮住文本內容, 有時(shí)候我就會(huì )忘了我到底要找什么。Emacs 就不會(huì )這樣。按 C-s 是查找,minibuffer 提示 I-search: 接下來(lái)你可以輸入你要找的詞,比如想找 windows, 輸入 w,Emacs 開(kāi)始找到w,光標移動(dòng)到 w 上,接著(zhù)輸入 i,Emacs 找到 wi, 并注意到Emacs 會(huì )同時(shí)高亮所有的 wi,接著(zhù)輸入 n,Emacs 找到win,等等。這 就是 incremetal search,它的好處是,你想要找 windows,但實(shí)際上你只要輸 入 win 就能定位到windows 上了,不需要繼續輸入 dows 了。繼續按 C-s 找下一個(gè)匹配的。C-r 往回查找。按回車(chē)或者方向鍵結束本次查找,再按兩次C-s 重復上次查找,按 C-g 取消查找,光標回到原處。
C-s 或 C-r 也可以用作光標定位,比如想要移到前面 Emacs 處,就可以 C-r Emacs,效率很高,可以說(shuō)是指哪打哪。
如果查找輸入的全是小寫(xiě),那么這次查找是大小寫(xiě)不敏感的,如果輸入字符中有 大寫(xiě)字母,那么這次查找就是大小寫(xiě)敏感的。很智能吧。
C-M-s 或 C-M-r 是正則表達式查找?;蛘咴?C-s 之后按 M-r 也可以切換到正則 表達式查找。這里不仔細講 Emacs 的正則表達式是怎么樣的。
替換
M-% 是 query-replace,輸入查找內容和替換內容,然后 Emacs 會(huì )詢(xún)問(wèn)是否要 替換,y 替換,n 不替換,! 替換光標之后所有,q 結束,? 可以得到幫助。
Emacs 的替換有一個(gè)很好的特性,可以只在選定區域內進(jìn)行替換。這樣就可以放心大膽地使用 ! 替換所用,而不用擔心超出范圍了。
C-M-% 是正則表達式的替換。
小結:
Emacs 提供了極其強大的幫助系統。
C-h t 是一個(gè) tutorial,現在也有不同語(yǔ)言的 tutorial。按 M-x 輸入 help-with-tutorial-spec-language 可以選擇不同的語(yǔ)言。按 Emacs 可 以幫你補全命令。按兩次 會(huì )有補全的提示。
C-h a 是 aproposcommand,你可以輸入幾個(gè)簡(jiǎn)單的單詞,Emacs 可以幫你找到 相應的命令,這個(gè)幫助非常好用。比如你想把一個(gè)單詞全部大寫(xiě),但不知道該怎么做,可以 C-h a 輸入 upcase word 或者 up word,Emacs 就會(huì )找到幾個(gè)命令, 其中一個(gè)是upcase-word,并且對應的按鍵是 M-u,你只要把光標移動(dòng)到單詞前按 M-u 就可以了。
C-h k 是描述某個(gè)按鍵會(huì )執行什么。例如你要看看 M-; 是干什么的,按C-h k, 接著(zhù)按 M-; 你就會(huì )看到 M-; 會(huì )運行 comment-dwim,dwim 是 do what i mean的縮寫(xiě),這個(gè)命令會(huì )注釋或反注釋你選定的區域,如果沒(méi)有選定區域,會(huì )在這一行后面加上注釋。很聰明的命令吧。
C-h c 簡(jiǎn)單描述某個(gè)按鍵執行什么。
C-h f 描述某個(gè)函數
C-h v 描述某個(gè)變量
C-h 會(huì )提供很多很多幫助信息,C-h ? 會(huì )顯示有哪些幫助信息。
Emacs有超強的可配置性,1000個(gè)人可以有1000種配置,可以有自己的鍵綁定, 有自定義的函數,有自己喜歡的擴展包。配置放在 home 目錄下的.emacs 里, Emacs 啟動(dòng)的時(shí)候會(huì )自動(dòng)讀取這個(gè)文件。啟動(dòng) Emacs 后,C-x C-f ~/.emacs 會(huì ) 打開(kāi) .emacs文件,如果不存在的話(huà)就是新建這個(gè)文件。home 目錄在哪里呢? 可以 M-x getenv home 得到 home 的位置。Linux 系統很好理解。 Windows 系統,會(huì )默認放在 C:\Documents and Settings\username\Application Data 下,有幾種方法可以指定 home 的位置:
Emacs 配置使用的語(yǔ)言是 Elisp,Emacs 附帶非常詳細的 Elisp 手冊,可以通 過(guò) M-x info 得到。配置 .emacs 一般只需要幾個(gè)簡(jiǎn)單語(yǔ)句,比如:
這里提供一個(gè)簡(jiǎn)單的 .emacs 文件: quick.emacs.el
你可以把它復制到你的 home 目錄下并改名為 .emacs 注意有個(gè).
或者用 runemacs.exe -q -l quick.emacs.el 來(lái)指定 emacs 使用這個(gè)配置文件。
介紹一些文本編輯的基本操作。只是為了說(shuō)明上手Emacs 其實(shí)很簡(jiǎn)單,而且幾乎每一樣操作都有比普通 Windows文本編輯器更好的特性,比如可以任意調整已選定的區域,更好的復制粘貼機制,更好的撤銷(xiāo)機 制,更好的 isearch查找方式,可以在區域內替換,強大得多的幫助系統,沒(méi)有任何限制的擴展性。用了幾天或幾個(gè)星期后就會(huì )覺(jué)得其他的編輯是多么麻煩和弱小。
本文摘自《30分鐘Emacs入門(mén)》,特此聲明。
聯(lián)系客服
微信登錄中...
請勿關(guān)閉此頁(yè)面
