歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Emacs 編輯器

  [b][size=4][color=blue]Emacs 是什麼的簡稱?[/color][/size][/b] 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 [b][size=4][color=blue]Emacs 能做什麼[/color][/size][/b] 很多人不理解為什麼 Emacs 的用戶那麼多,他們是如此的熱愛 Emacs,甚至有的人把它當成了“信仰”。雖然我沒有這個信仰,但是它的確很好,我很喜歡用它編輯各種文件,現在來看看 Emacs 能做什麼。 據我所知,Emacs 的能力包括 1. 編輯文本 Emacs 編輯文本的能力是最強的了。Emacs 的其它很多功能都是這種強大的編輯能力。Emacs 是人性化的設計,你心裡很舒服,對編輯東西充滿熱情,因為它能幫你完成很多事情。它非常可靠,絕對不會弄壞你的文件,用它編輯文本,你的心裡有保障。 可能你開頭覺得它的鍵綁定用起來非常不順手。但是 Emacs 的優勢不在於擊鍵的頻率,我們的目標是用一個鍵,甚至不按鍵盤,就完成非常多,非常智能的操作。 Emacs 的自動文本處理能力極強。不管是中文還是英語,不管你是寫小說,寫 Html 還是 C 程序,我都可以按 M-e 向前移動一句話 (C語句),按 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 處理,馬上看到效果。 Emacs 有非常友好而強大的人機界面。在搜索替換字符串時,你就能明顯感覺到這個優點。它在輸入regeXP(正則表達式)搜索的時候還能進行 incremental search,而且對部分匹配的字串都有非常漂亮的加量。在替換的時候,它獨有 recursive edit,可以打斷替換過程,編輯附近的需要糾正的文字,然後繼續替換。這個功能對很多人都是非常重要的,因為,在替換過程中,被替換的文字附近的文字很可能會因為它被替換而需要修改。看看這個抓圖,就是 isearch 輸入一個正則表達式的情況。


Emacs 的拼寫檢查能力非常強大。你可以使用 flyspell 隨時檢查你的拼寫錯誤,看看這幅圖 是 flyspell-mode 的 LaTeX 文檔, flyspell 知道段落裡的某些單詞是錯的,而 \begin{myquotation} 裡的 myquotation 被認為是一個用戶自己定義的 LaTeX 環境名字而不認為是拼寫錯誤。 你還可以利用 ispell 的補全功能輸入你容易打錯的很長的英語單詞,看看這幅圖。 Emacs 的 hippie-expand 能夠非常智能的補全你的文本,文件名,和其它很多東西,而這個功能都是用同一個按鍵完成! Emacs 能輸入和顯示多國語言文本 ,是一個真正的國際化程序。Emacs 能識別多種人類語言符號裡的語法,它能知道那些符號是括號,那些是標點。看看這個抓圖裡, Emacs 顯示了中文書名號的匹配情況。 《正確》,和《錯誤> Emacs 的鍵是可以任意綁定的。我甚至可以使用 Windows 鍵盤上的 Win 和 Menu 鍵來控制。我的 Win + 鼠標中間可以彈出一個 buffer裡所有引用到的文件和URL的列表,當我點擊它們就可以編輯那個文件或者在 Mozilla 中打開連接。看看這個抓圖(ffap-at-mouse)。 你能想到的和你不能想到的編輯功能,Emacs 都能完成。說到這裡你可能又會說:“這個功能,vi也有”,“這個功能, UltraEdit 都有”……對,這些能力可能很多其它程序也有,不過同樣的功能, Emacs 總是要比別人完成得更好。這一點你用過才能體會到。 而且這些功能只不過是 Emacs 浩如煙海的功能中的一部分,它們還可以被不斷的擴充。因為 Emacs 具有非常強大擴展能力。 Emacs 編輯文本方面的擴展簡直沒法計數。folding, narrow, outline, ... 這些給人帶來了非常大的方便,已經被許許多多的人采用。 2. 編輯程序 程序也是一種特殊的文本文件。因為 Emacs 特別適合編輯程序,所以特別在這裡提出。Emacs 可以方便的編輯任何類型的計算機語言程序代碼,而且為它們提供語法加亮,自動縮進。你可以對程序的語句進行操作。比如向下移動一個 list, 刪除整個 C 函數,…… 你可以用一個鍵就把許多行注釋重新排的整整齊齊。 一些擴展可以讓你方便的浏覽代碼,而且它們可以識別代碼的語義。列出函數名,參數和類型,變量名,類,宏,方法,defun, include 的文件。當你編輯程序時,Emacs 可以幫你補全函數名,參數等等。你可以在代碼中間自由的穿梭。看看這個用 Emacs 寫程序的介紹。 你可以使用 Ediff 來比較兩個或者三個文件,Emacs 可以把不同的地方高量,而且修改過的地方有特別明顯的顏色不同。我經常用這個功能很快找到我修改過的代碼裡新出現的錯誤的位置。看看這個抓圖。 你用一個指頭就可以讓 Emacs 調用編譯器編譯程序,列出錯誤列表,啟動調試器,在另一個窗口顯示當前執行源代碼的位置。看看這個抓圖就是 emacs 正在調用 gdb 調試程序。 Emacs 的 narrow 和 folding 功能使你能夠編輯幾萬行代碼在一個文件裡而不會覺得摸不著方向。看看這幅圖,你能想像這是 TeX 的源代碼的 24000 多行裡的一部分嗎?你操作它的時候就像只有幾十行。 folding 可以使你的很長的文檔折疊起來,看看這幅圖就是我的一個很長的網頁,我在需要的時候可以進入其中一個主題進行編輯,當我退出主題時,整個文檔看起來就像只有一頁那麼長。我可以隨意的移動我的主題,就像只移動了一行。 加上一些 elisp,Emacs 就可以成為一個代碼浏覽器。 3. 作為其它程序的界面 Emacs 可以作為很多程序的前端。比如w3m, lynx 浏覽器,MAXIMA 計算機代數系統, Scheme48 等 Scheme 解釋器,shell,……這些文本方式的程序一旦與 Emacs 接合就擁有了巨大的編輯的能力。看看這幅圖,Scheme48 加上 Emacs,就有了語法加亮和方便的熱鍵,可以非常方便的使用Scheme 解釋器了。 4. 作為操作系統 Emacs 就像一個具有編輯功能的操作系統,你可以用它干很多事情。比如,閱讀email和新聞組, 浏覽網頁,管理文件目錄 (dired),作為網頁服務器,遠程編輯文件,記錄日程,約會提醒,電子日歷 ,查字典,ICQ 聊天,放 mp3,…… 5. 煮咖啡 Emacs 的功能已經超越了電腦的范圍啦!看看這個很奇特的用途: coffee.el :P



5. 煮咖啡 Emacs 的功能已經超越了電腦的范圍啦!看看這個很奇特的用途: coffee.el :P



Copyright © Linux教程網 All Rights Reserved