Emacs是什嗎?
Emacs是一種功能超強的文本處理常式,或者文字編輯器。作者Richard Stallman(首頁:http://stallman.org/)。基礎部分是使用C語言編寫的,其他部分是用Emacs Lisp編寫的。深層次的話,C語言構成了emacs的底層,包括Emacs Lisp的解譯器。而Emacs
Lisp則是負責了Emacs Lisp的建築物上層,也就是包括我們平時用的擴充、介面等。
Emacs只是一文字編輯器,這和Windows上的Visual Studio等等不同的是,VS整合的是完整的開發功能,包括編譯器、編輯器、調試器等等。而Emacs只是一個文字編輯器,當然不要因此而是否定Emacs的強大。Emacs可以做的:
- 收發電子郵件、通過FTP/TRAMP編輯遠程檔案、通過Telnet登入主機、上新聞群組、登陸IRC和朋友交流
- 查看日曆、撰寫文章大綱
- 對多種程式設計語言的編輯、偵錯工具,結合GDB,EDebug等。支援C/C++,Perl,Python,Lisp等等
- 玩遊戲、計算機、記日記
- 煮咖啡、管理議程,Task,ToDo,約會等、個人資訊管理、目錄管理
- 檔案比較、閱讀info和man文檔、瀏覽網站
他確實只是一個文本處理器,你可以將之視為偽編輯器的作業系統。而這是因為其與unix/linux系統的整合程度而起的,換句說,如果Richard Stallman可以早點開發出核心,而不是等到Linux的話。Linux/Unix的設計思想之一就是:簡單,使用足夠的小程式來支撐起這世界,而是Emacs所做的就是利用這些工具,來打造自己,完成自己的系統。因而,Emacs強大的另一點是,有足夠的擴充,無論是過去的auto-complete或者是現在的Android-mode等等。故而,我們可以在《架構之美》之中看到關於其的介紹,而是他的特性也是如此,滋長的特性是其優勢。
也因些,Emacs是Unix世界的兩大神器之一,另外一個是Vim/Vi。
Emacs是什麼樣的?
Emacs的設計預想是需要時只需要啟動一次,然後一直運行著。我們可以使用C-x-2,C-x-3對視窗進行分割,開啟多個檔案進行編輯。Emacs的三種基本對象是:幀(frame)、視窗(window)、緩衝區(buffer)。
幀是Emacs對電腦圖形介面中視窗的稱呼。將分為三個部分,分別是顯示了Emacs的介紹,可瀏覽的目錄列表及展示Lisp互動介面的緩衝區(buffer)。而是最下面的那一行,則是輸入命令的地方。
視窗是幀的一部分,要建立一個新的視窗,只能通過將原有視窗分成兩個,當關閉某個視窗時,將把空間給鄰近的視窗。這樣的結果是一個幀中的視窗始終會填滿整個幀的內容。只有對鍵盤命令進行響應,視窗是輕量級的,在使用時會頻繁地建立和關閉。
緩衝區是用來儲存可編輯的常值內容。Emacs將會把開啟的常值內容儲存在緩衝區中,但緩衝區中的內容並不一定必須與某個檔案關聯:它可能包括搜尋結果、線上文檔,以及剛輸入還沒有儲存到任何檔案中的內容。每個視窗將顯示某些緩衝區的內容,而一個緩衝區可能儲存0個、1個或多個視窗。
還有一個很重要的地方,那就是除了每個視窗底部的模式行以及其他類似的東西,Emacs在向使用者顯示文本資訊時會將其放在緩衝區中,然後將緩衝區的內容顯示在某些視窗中。協助資訊、搜尋結果、目錄列表以及其他類似的的內容,儲存在緩衝區中的內容都有相應的名稱。