Emacs 簡介

1 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和朋友交流windows

  • 查看日曆、撰寫文章大綱
      架構

  • 對多種編程語言的編輯、調試程序,結合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。spa

2 Emacs是什麼樣的?

emacs1

emacs2

Emacs的設計預想是須要時只須要啓動一次,而後一直運行着。咱們能夠對窗口進行分割,打開多個文件進行編輯。Emacs的三種基本對象是:幀(frame)、窗口(window)、緩衝區(buffer)。

3 Emacs 的基本概念

Emacs 的基本概念

3.1 frame

Emacs中的frame就是操做系統中的窗口.

buffer是文件的內存表示, windows則是顯示buffer的區域, 一個frame中能夠有多個window, Emacs則能夠有多個frame.

3.2 window

窗口. 因爲Emacs很早就誕生了, 它的窗口概念和如今基於窗口的操做系統中的窗口概念不是同樣的. Emacs中的窗口是用來顯示buffer的一個區域. 它並不像操做系統中的窗口擁有本身的標題欄,系統菜單欄.

3.3buffer

緩衝區. Emacs並不直接對文件進行操做, 它是把文件加載進buffer, 用戶直接操做buffer, 只有當用戶肯定把buffer中所作的修改寫人文件時, Emacs才把buffer中的內容寫入文件. buffer實際上就是一個內存緩衝區, 這和通常編輯器中都同樣, 應該很好理解.

3.4 Emacs Lisp

Emacs最基礎的部分是用c寫的,其餘部分都是用Emacs Lisp語言寫的,Emacs Lisp語言是基於lisp語言的. lisp是LISt Processor的縮寫, 即鏈表處理語言, 因此lisp語言的操做都是基於鏈表的, 它的語法也是鏈表結構, 鏈表第一個元素表示函數名, 其餘元素是參數, 好比一般語言中的a+b, 在lisp就是(+ a b)

3.5 mode

mode有major mode和minor mode之分, 每一個緩衝區對應一個major mode, 也只有一個major mode, 可是能夠有多個minor mode. Emacs對每一種文件都有一個mode.

3.6 命令

你對Emacs全部的操做都是對Emacs的命令的調用。好比,你在text-mode裏,當你按下任何字母鍵進行編輯的時候,其實是調用的emacs的命令self-insert-command.

3.7 快捷鍵

Emacs中Control鍵用C表示,Alt鍵用M表示, 即: C-c表示Control C, M-x表示Alt x.

除掉以Alt鍵開頭的,好比Alt a,Emacs中的快捷鍵基本上都有一個前綴,Emacs中最多的快捷鍵前綴就是C-x,C-c,前綴表示,你沒必要要一塊兒按下前綴和後綴,能夠先按下前綴,Emacs會等待你按下剩餘的快捷鍵,這樣Emacs中的快捷鍵按起來很是的方便。

3.8 keymap

鍵盤映射. Emacs的快捷鍵是經過keymap來控制的. 有全局和局部的keymap. 每一個mode都會有一個本身的局部的keymap, 局部的keymap會覆蓋全局的keymap, 另外若是對應的major mode有開啓的minor mode, 並且這個minor mode有keymap的話, 這個minor mode的keymap會覆蓋major mode的keymap.

參考資料
Emacs入門系列:嘗試定製神器
Emacs 入門指引(一) Emacs簡介
Emacs基礎知識簡介

相關文章
相關標籤/搜索