史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   網路軟硬體架設技術文件 (http://forum.slime.com.tw/f133.html)
-   -   Emacs 是一種信仰!世界最強編輯器介紹 (http://forum.slime.com.tw/thread186722.html)

psac 2006-09-22 03:16 PM

Emacs 是一種信仰!世界最強編輯器介紹
 
】Emacs是一種信仰!世界最強編輯器介紹
這個世界最強是個怎麼樣的強法呢?一說:Emacs是一種「信仰」。另說:世界上的程式員分三種,一種使用Emacs,一種使用vim,剩餘的是其它。(完全無視其他編輯器的存在……)
  來看看這個被人奉為信仰、可以煮咖啡的編輯器是個什麼樣子。
一、Emacs的歷史
  Emacs程式的最初版本是由RichardStallman在1975年寫成(年齡比很多讀者都大吧 :) )。之後其衍生版本眾多。目前使用得最多的兩個版本是RichardStallman在1984年開發的一個版本——GNUEmacs和1991年由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
  (註:請原諒沒有翻譯。專有名詞的翻譯比較困難,而且很多東西翻譯後就完全失去其原有的味道了。)
二、Emacs 能做什麼
  很多人不理解為什麼 Emacs 的用戶那麼多,他們是如此的熱愛
Emacs,甚至有的人把它當成了「信仰」。雖然筆者沒有這個信仰,但是它的確很好,很喜歡用它編輯各種文件,現在來看看 Emacs 能做什麼。
  據筆者所知,Emacs 的能力包括:
  1.編輯文本
  Emacs 編輯文本的能力是非常強的。它的其它很多功能都是依賴於強大的編輯能力。Emacs
是人性化的設計,它非常可靠,不會莫名其妙弄壞你的文件,用它編輯重要的文本信心有保障。
  可能你開頭覺得它的鍵綁定用起來非常不順手。它有很多長長的 「快捷鍵」,比如按下Ctrl-h再按Ctrl-i…… 比起 VIM
的一個鍵的快捷鍵的確慢很多。但是 Emacs 的優勢不在於擊鍵的頻率,它的目標是用一個鍵,甚至不按鍵盤,就完成複雜而智慧式的操作。面對
Emacs,你感覺自己像是一個魔法師,輕輕一揮魔棒,任務就完成了。
  Emacs 的文本處理能力極強,不管你要處理自然語言還是機器語言。不管是中文還是英語,不管是小說、HTML,還是 C 程式、Java 程式,都可以按
M-e 向前移動一句話(C和Java語句),按 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 處理,馬上看到效果。
  現在你是不是感覺自己更像魔法師了?繼續!
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e15.png
圖1 Windows下的emacs(+上圖可點擊放大

  Emacs 有非常友好而強大的人機界面。在搜索替換字元串時,你就能明顯感覺到這個優點。它在輸入regexp(正則表達式)搜索的時候還能進行
incremental search,而且對部分匹配的字串都有非常漂亮的加量。在替換的時候,它獨有 recursive
edit,可以打斷替換過程,編輯附近的需要糾正的文字,然後繼續替換。這個功能對很多人都是非常重要的,因為,在替換過程中,被替換的文字附近的文字很可能會因為它被替換而需要修改。看看這個抓圖,就是
isearch 輸入一個正則表達式的情況。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e1.jpg
  Emacs 的拼寫檢查能力非常強大。你可以使用 flyspell 隨時檢查你的拼寫錯誤,看看這幅圖 是 flyspell-mode 的 LaTeX
文檔, flyspell 知道段落裡的某些單詞是錯的,而 \begin{myquotation} 裡的 myquotation 被認為是一個用戶自己定義的
LaTeX 環境名字而不認為是拼寫錯誤。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e2.jpg
圖3 flyspell檢查出的拼寫錯誤(+上圖可點擊放大
  你還可以利用 ispell 的補全功能輸入你容易打錯的很長的英語單詞,看看這幅圖。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e3.jpg
圖4 利用ispell輸入比較長的單詞(+上圖可點擊放大
  Emacs 的 hippie-expand 能夠非常智慧式的補全你的文本,文件名,和其它很多東西,而這個功能都是用同一個按鍵完成!
  Emacs 能輸入和顯示多國語言文本 ,是一個真正的國際化程式。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e4.jpg
圖5 Emacs支持多國語言
 Emacs 能識別多種自然語言符號,它能知道哪些符號是括號,那些是標點。看看這個抓圖裡,Emacs 顯示了中文書名號的匹配情況。
《正確》,和《錯誤> 。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e5.jpg
圖6 書名號的匹配(一)(+上圖可點擊放大

http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e6.jpg
圖7 書名號的匹配(二)(+上圖可點擊放大
  Emacs 的鍵是可以任意綁定的。甚至可以使用 Windows 鍵盤上的 Win 和 Menu 鍵來控制。筆者的「Win +
滑鼠中鍵」可以彈出一個buffer 裡所有引用到的文件和URL的列表,當點擊它們就可以編輯那個文件或者在 Mozilla 中打開連接,如圖8。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e16.png
圖8 筆者的「Win + 滑鼠中鍵」功能(+上圖可點擊放大
  你能想到的和你不能想到的編輯功能,Emacs 都能完成。說到這裡你可能又會說:「這個功能,vi也有」,「這個功能, UltraEdit
都有」……對,這些能力可能很多其它程式也有。對,但是讓一個 Emacs
擁有這些功能比起其它程式的確要費少得多的力氣。很多熱心的愛好者看到其它編輯器有一個很酷的功能,他就可以想辦法把它加入到 Emacs 裡面。Emacs
可以被不斷的擴充。其實,你平常用到的幾乎所有功能都是擴展的功能。
  建立一個微小的基本功能的集合,然後把所有複雜功能作為這些基本功能的組合。這體現了一種程式設計的哲學。不同於 Windows, 也不同於
UNIX,它更好的協調了程式的靈活性和同一性。
  Emacs 編輯文本方面的擴展簡直沒法計數。folding、 narrow、 outline……這些給人帶來了很大的方便,已經被許許多多的人採用。
  2.編輯程式
  程式也是一種特殊的文本文件。因為 Emacs 特別適合編輯程式,所以特別在這裡提出。Emacs
可以方便的編輯任何類型的電腦語言程式代碼,而且為它們提供語法加亮,自動縮進。你可以對程式的語句進行操作。比如向下移動一個 list,刪除整個 C 函數……
你可以用一個鍵就把許多行註釋重新排的整整齊齊。
  一些擴展可以讓你方便的瀏覽代碼,而且它們可以識別代碼的語義。列出函數名、參數和類型、變數名、類、巨集、方法、defun、include
的文件。當你編輯程式時,Emacs 可以幫你補全函數名,參數等等。你可以在代碼中間自由的穿梭。
  你可以使用 Ediff 來比較兩個或者三個文件,Emacs
可以把不同的地方高亮,而且修改過的地方有特別明顯的顏色不同。筆者經常用這個功能很快找到修改過的代碼裡新出現的錯誤的位置,如圖8。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e7.jpg
圖9 Emacs上的高亮功能
  你用一個指頭就可以讓 Emacs 呼叫編譯器編譯程式,列出錯誤列表,啟動除錯器,在另一個視窗顯示當前執行源代碼的位置。
  Emacs 的 narrow 和 folding 功能使你能夠編輯幾萬行代碼在一個文件裡而不會覺得摸不著方向。看看這幅圖,你能想像這是 TeX
的源代碼的 24000 多行裡的一部分嗎?你操作它的時候就像只有幾十行。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e8.jpg
圖10 Emacs的narrow功能(+上圖可點擊放大
  folding
可以使你的很長的文檔折疊起來,看看這幅圖就是一個很長的網頁,在需要的時候可以進入其中一個主題進行編輯,當退出主題時,整個文檔看起來就像只有一頁那麼長。可以隨意的移動主題,就像只移動了一行。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e9.jpg
圖11 Emacs的folding功能
加上一些 elisp,Emacs 就可以成為一個代碼瀏覽器。
  3.作為其它程式的界面
  Emacs 可以作為很多程式的前端。比如w3m、lynx(兩者都是瀏覽器)、MAXIMA 電腦代數系統、Scheme48等Scheme
解釋器、shell……這些文本方式的程式一旦與 Emacs 接合就擁有了巨大的編輯的能力。如圖13,Scheme48 加上
Emacs,就有了語法加亮和方便的熱鍵,可以非常方便的使用Scheme 解釋器了。
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e10.jpg
圖12 Emacs上用w3m瀏覽網頁(+上圖可點擊放大
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e17.png
圖13 Emacs加Scheme48後的強大語法加亮功能-
4.作為操作系統
  Emacs 就像一個具有編輯功能的操作系統,你可以用它干很多事情。比如:閱讀email和新聞組、瀏覽網頁、管理文件目錄
(dired)、作為網頁服務器、遠端編輯文件、記錄日程、約會提醒、電子日曆、查字典、ICQ 聊天、放 mp3……
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e11.jpg
圖14 用Emacs新聞組(+上圖可點擊放大

http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e12.jpg
圖15 用Emacs管理文件目錄 (dired)(+
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e13.jpg
圖16 Emacs上的電子日曆(+上圖可點擊放大
http://www.pconline.com.cn/pcedu/soft/gj/photo/0609/pic/060911_e14.jpg
圖17 在Emacs上查字典
  5.煮咖啡
  如果你工作的地方有自動咖啡機,Emacs 還可以幫你點咖啡。 :)
  煮咖啡的方法,請參見http://www.chez.com/emarsden/downloads]這裡[/url]。(原鏈接於9月12日不能用,給出的是Google快照的內容。)
三、Emacs的相關資料
  1.Emacs
主頁:這裡能找到很多訊息。
  2.Emacs
FTP:這裡能下載到 Emacs 的發行版。
  3.Emacs
CVS:這裡能下載到最新的 CVS 版本的 Emacs。
  4.
SourceForce.net:這裡有許許多多 Emacs 相關的程式,從提供基本操作方便的, 到瀏覽代碼,編輯程式,……
內容非常廣泛。
  5.
EmacsWiki:一個非常好的
WiKi 網站。裡面有很多Emacs的使用技巧。
  6.
dotemacs:一個搜集 .emacs
文件的網站。你可以從這裡學習怎麼配置 .emacs.

zasiza 2006-09-22 10:03 PM

這兩大編輯器......還不都是要死背活背一堆指令 @@

比較起來,我更愛vi,感覺跟 tty 終端機融合了,而且手一直黏在鍵盤上的擊打實在有莫名的快感。(感覺自己是高手 >///< )

gnu emacs......等我更進步一點,再來看需不需要學 !!


所有時間均為台北時間。現在的時間是 06:29 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1