【轉】Emacs是一種信仰!世界最強編輯器介紹

轉自http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/865628.html

寫作時間:2006/09

編者按:這個世界最強是個怎麼樣的強法呢?一說:Emacs是一種信仰。另說:世界上的程序員分三種,一種使用Emacs,一種使用vim,剩餘的是其它。(完全無視其他編輯器的存在……

來看看這個被人奉爲信仰、可以煮咖啡的編輯器是個什麼樣子。

1 Emacs的歷史

Emacs程序的最初版本是由RichardStallman1975年寫成(年齡比很多讀者都大吧 :) )。之後其衍生版本衆多。目前使用得最多的兩個版本是RichardStallman1984年開發的一個版本——GNUEmacs1991年由JamieZawinski寫成的XEmacs

看看他的簡稱你會頭暈。

E. M. A. C. S.

·       Emacs Makes A Computer Slow

·       Escape Meta Alt Control Shift

·       Emacs Makers Are Crazy Sickos

·       Emacs Makes All Computing Simple

·       Emacs Makefiles Annihilate C-Shells

·       Emacs Manuals Always Cause Senility

·       Emacs May Allow Customized Screwups

·       Emacs Manuals Are Cryptic and Surreal

·       Eventually Munches All Computer Storage

·       Eight Megabytes And Constantly Swapping

·       Elsewhere Maybe All Commands are Simple

·       Excellent Manuals Are Clearly Suppressed

·       Emacs May Alienate Clients and Supporters

·       Except by Middle Aged Computer Scientists

·       Extended Macros Are Considered Superfluous

·       Every Mode Accelerates Creation of Software

·       Each Manual's Audience is Completely Stupefied

·       Exceptionally Mediocre Algorithm for Computer Scientists

·       Easily Maintained with the Assistance of Chemical Solutions

·       Eradication of Memory Accomplished with Complete Simplicity

PConline注:請原諒沒有翻譯。專有名詞的翻譯比較困難,而且很多東西翻譯後就完全失去其原有的味道了。)

2 Emacs 能做什麼

很多人不理解爲什麼 Emacs 的用戶那麼多,他們是如此的熱愛 Emacs,甚至有的人把它當成了信仰。雖然筆者沒有這個信仰,但是它的確很好,很喜歡用它編輯各種文件,現在來看看 Emacs 能做什麼。

據筆者所知,Emacs 的能力包括:

2.1 編輯文本

Emacs 編輯文本的能力是非常強的。它的其它很多功能都是依賴於強大的編輯能力。Emacs 是人性化的設計,它非常可靠,不會莫名其妙弄壞你的文件,用它編輯重要的文本信心有保障。

可能你開頭覺得它的鍵綁定用起來非常不順手。它有很多長長的快捷鍵,比如按下Ctrl-h再按Ctrl-i…… 比起 VIM 的一個鍵的快捷鍵的確慢很多。但是 Emacs 的優勢不在於擊鍵的頻率,它的目標是用一個鍵,甚至不按鍵盤,就完成複雜而智能的操作。面對 Emacs,你感覺自己像是一個魔法師,輕輕一揮魔棒,任務就完成了。

Emacs 的文本處理能力極強,不管你要處理自然語言還是機器語言。不管是中文還是英語,不管是小說、HTML,還是 C 程序、Java 程序,都可以按 M-e 向前移動一句話(CJava語句),按 M-k 刪除一句話,按 M-} 移動一段話,按 M-p (筆者自己設定的按鍵) 刪除一段話。因爲 Emacs 知道,什麼樣算是一句話 (sentence-end),什麼算是一段話(paragraph-start)。而且它知道在不同的文檔裏,句子和段落有什麼區別。

筆者只要按 M-q 就可以把一段話排的規規矩矩。只要按一個鍵就可以把一個數字列表重新排序。在 HTML 文檔裏只要按 C-c backspace 就可以把一組tag刪掉,按C-c C-c i 就可以插入一個圖片,按 C-c C-v 就可以馬上把這個文檔送到一個 Mozilla 窗口去預覽…… LaTeX 文檔裏按 C-c C-r RET 就可以把文檔裏選定的區域送給 LaTeX 處理,馬上看到效果。

現在你是不是感覺自己更像魔法師了?繼續!

1 Windows下的emacs+上圖可點擊放大

Emacs 有非常友好而強大的人機界面。在搜索替換字符串時,你就能明顯感覺到這個優點。它在輸入regexp(正則表達式)搜索的時候還能進行 incremental search,而且對部分匹配的字串都有非常漂亮的加量。在替換的時候,它獨有 recursive edit,可以打斷替換過程,編輯附近的需要糾正的文字,然後繼續替換。這個功能對很多人都是非常重要的,因爲,在替換過程中,被替換的文字附近的文字很可能會因爲它被替換而需要修改。看看這個抓圖,就是 isearch 輸入一個正則表達式的情況。

2 isearch輸入正則表達式(+上圖可點擊放大

Emacs 的拼寫檢查能力非常強大。你可以使用 flyspell 隨時檢查你的拼寫錯誤,看看這幅圖 flyspell-mode LaTeX 文檔, flyspell 知道段落裏的某些單詞是錯的,而 /begin{myquotation} 裏的 myquotation 被認爲是一個用戶自己定義的 LaTeX 環境名字而不認爲是拼寫錯誤。

3 flyspell檢查出的拼寫錯誤(+上圖可點擊放大

你還可以利用 ispell 的補全功能輸入你容易打錯的很長的英語單詞,看看這幅圖。

4 利用ispell輸入比較長的單詞(+上圖可點擊放大

Emacs hippie-expand 能夠非常智能的補全你的文本,文件名,和其它很多東西,而這個功能都是用同一個按鍵完成!

Emacs 能輸入和顯示多國語言文本 ,是一個真正的國際化程序。

5 Emacs支持多國語言(+上圖可點擊放大

Emacs 能識別多種自然語言符號,它能知道哪些符號是括號,那些是標點。看看這個抓圖裏,Emacs 顯示了中文書名號的匹配情況。 《正確》,和《錯誤>

6 書名號的匹配(一)(+上圖可點擊放大

7 書名號的匹配(二)(+上圖可點擊放大

Emacs 的鍵是可以任意綁定的。甚至可以使用 Windows 鍵盤上的 Win Menu 鍵來控制。筆者的“Win + 鼠標中鍵可以彈出一個buffer 裏所有引用到的文件和URL的列表,當點擊它們就可以編輯那個文件或者在 Mozilla 中打開連接,如圖8

8 筆者的“Win + 鼠標中鍵功能(+上圖可點擊放大

你能想到的和你不能想到的編輯功能,Emacs 都能完成。說到這裏你可能又會說:這個功能,vi也有這個功能, UltraEdit 都有”……對,這些能力可能很多其它程序也有。對,但是讓一個 Emacs 擁有這些功能比起其它程序的確要費少得多的力氣。很多熱心的愛好者看到其它編輯器有一個很酷的功能,他就可以想辦法把它加入到 Emacs 裏面。Emacs 可以被不斷的擴充。其實,你平常用到的幾乎所有功能都是擴展的功能。

建立一個微小的基本功能的集合,然後把所有複雜功能作爲這些基本功能的組合。這體現了一種程序設計的哲學。不同於 Windows, 也不同於 UNIX,它更好的協調了程序的靈活性和同一性。

Emacs 編輯文本方面的擴展簡直沒法計數。folding narrow outline……這些給人帶來了很大的方便,已經被許許多多的人採用。

2.2 編輯程序

程序也是一種特殊的文本文件。因爲 Emacs 特別適合編輯程序,所以特別在這裏提出。Emacs 可以方便的編輯任何類型的計算機語言程序代碼,而且爲它們提供語法加亮,自動縮進。你可以對程序的語句進行操作。比如向下移動一個 list,刪除整個 C 函數…… 你可以用一個鍵就把許多行註釋重新排的整整齊齊。

一些擴展可以讓你方便的瀏覽代碼,而且它們可以識別代碼的語義。列出函數名、參數和類型、變量名、類、宏、方法、defuninclude 的文件。當你編輯程序時,Emacs 可以幫你補全函數名,參數等等。你可以在代碼中間自由的穿梭。

你可以使用 Ediff 來比較兩個或者三個文件,Emacs 可以把不同的地方高亮,而且修改過的地方有特別明顯的顏色不同。筆者經常用這個功能很快找到修改過的代碼裏新出現的錯誤的位置,如圖8

9 Emacs上的高亮功能(+上圖可點擊放大

你用一個指頭就可以讓 Emacs 調用編譯器編譯程序,列出錯誤列表,啓動調試器,在另一個窗口顯示當前執行源代碼的位置。

Emacs narrow folding 功能使你能夠編輯幾萬行代碼在一個文件裏而不會覺得摸不着方向。看看這幅圖,你能想像這是 TeX 的源代碼的 24000 多行裏的一部分嗎?你操作它的時候就像只有幾十行。

10 Emacsnarrow功能(+上圖可點擊放大

folding 可以使你的很長的文檔摺疊起來,看看這幅圖就是一個很長的網頁,在需要的時候可以進入其中一個主題進行編輯,當退出主題時,整個文檔看起來就像只有一頁那麼長。可以隨意的移動主題,就像只移動了一行。

11 Emacsfolding功能(+上圖可點擊放大

加上一些 elispEmacs 就可以成爲一個代碼瀏覽器。

2.3 作爲其它程序的界面

Emacs 可以作爲很多程序的前端。比如w3mlynx(兩者都是瀏覽器)、MAXIMA 計算機代數系統、Scheme48Scheme 解釋器、shell……這些文本方式的程序一旦與 Emacs 接合就擁有了巨大的編輯的能力。如圖13Scheme48 加上 Emacs,就有了語法加亮和方便的熱鍵,可以非常方便的使用Scheme 解釋器了。

12 Emacs上用w3m瀏覽網頁(+上圖可點擊放大

13 EmacsScheme48後的強大語法加亮功能-

2.4 作爲操作系統

Emacs 就像一個具有編輯功能的操作系統,你可以用它幹很多事情。比如:閱讀email和新聞組、瀏覽網頁、管理文件目錄 (dired)、作爲網頁服務器、遠程編輯文件、記錄日程、約會提醒、電子日曆、查字典、ICQ 聊天、放 mp3……

14 Emacs新聞組(+上圖可點擊放大

15 Emacs管理文件目錄 (dired)+上圖可點擊放大

16 Emacs上的電子日曆(+上圖可點擊放大

17 Emacs上查字典(+上圖可點擊放大

2.5 煮咖啡

如果你工作的地方有自動咖啡機,Emacs 還可以幫你點咖啡。 :)

煮咖啡的方法,請參見這裏。(原鏈接於912日不能用,給出的是Google快照的內容。)

3 Emacs的相關資料

1.Emacs 主頁:這裏能找到很多信息。

2.Emacs FTP:這裏能下載到 Emacs 的發行版。

3.Emacs CVS:這裏能下載到最新的 CVS 版本的 Emacs

4.SourceForce.net:這裏有許許多多 Emacs 相關的程序,從提供基本操作方便的, 到瀏覽代碼,編輯程序,…… 內容非常廣泛。

5.EmacsWiki:一個非常好的 WiKi 網站。裏面有很多Emacs的使用技巧。

6.dotemacs:一個蒐集 .emacs 文件的網站。你可以從這裏學習怎麼配置 .emacs.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章