Emacs 简介
1 Emacs是什么?
Emacs是一種功能超強的文本處理程序,或者文本編輯器。作者Richard Stallman(主
頁:http://stallman.org/)。基礎(chǔ)部分是使用C語言編寫的,其他部分是用Emacs Lisp編寫的。深層次的話,C語言構(gòu)成了emacs的底層,包括Emacs Lisp的解釋器。而Emacs Lisp則是負責了Emacs Lisp的建筑物上層,也就是包括我們平時用的擴展、界面等。
Emacs只是一文本編輯器,這和Windows上的Visual Studio等等不同的是,VS集成的是完整的開發(fā)功能,包括編譯器、編輯器、調(diào)試器等等。而Emacs只是一個文本編輯器,當然不要因此而是否定Emacs的強大。Emacs可以做的:
收發(fā)電子郵件、通過FTP/TRAMP編輯遠程檔案、通過Telnet登錄主機、上新聞組、登陸IRC和朋友交流
查看日歷、撰寫文章大綱
對多種編程語言的編輯、調(diào)試程序,結(jié)合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等
玩游戲、計算器、記日記
煮咖啡、管理日程,Task,ToDo,約會等、個人信息管理、目錄管理
文件比較、閱讀info和man文檔、瀏覽網(wǎng)站
他確實只是一個文本處理器,你可以將之視為偽編輯器的操作系統(tǒng)。而這是因為其與unix/Linux系統(tǒng)的整合程度而起的,換句說,如果Richard Stallman可以早點開發(fā)出內(nèi)核,而不是等到Linux的話。Linux/Unix的設計思想之一就是:簡單,使用足夠的小程序來支撐起這世界,而是Emacs所做的就是利用這些工具,來打造自己,完成自己的系統(tǒng)。因而,Emacs強大的另一點是,有足夠的擴展,無論是過去的auto-complete或者是現(xiàn)在的Android-mode等等。故而,我們可以在《架構(gòu)之美》之中看到關(guān)于其的介紹,而是他的特性也是如此,滋長的特性是其優(yōu)勢。
也因些,Emacs是Unix世界的兩大神器之一,另外一個是Vim/Vi。
2 Emacs是什么樣的?
Emacs的設計預想是需要時只需要啟動一次,然后一直運行著。我們可以對窗口進行分割,打開多個文件進行編輯。Emacs的三種基本對象是:幀(frame)、窗口(window)、緩沖區(qū)(buffer)。
3 Emacs 的基本概念
3.1 frame
Emacs中的frame就是操作系統(tǒng)中的窗口.
buffer是文件的內(nèi)存表示, windows則是顯示buffer的區(qū)域, 一個frame中可以有多個window, Emacs則可以有多個frame.
3.2 window
窗口. 由于Emacs很早就誕生了, 它的窗口概念和現(xiàn)在基于窗口的操作系統(tǒng)中的窗口概念不是一樣的. Emacs中的窗口是用來顯示buffer的一個區(qū)域. 它并不像操作系統(tǒng)中的窗口擁有自己的標題欄,系統(tǒng)菜單欄.
3.3buffer
緩沖區(qū). Emacs并不直接對文件進行操作, 它是把文件加載進buffer, 用戶直接操作buffer, 只有當用戶確定把buffer中所做的修改寫人文件時, Emacs才把buffer中的內(nèi)容寫入文件. buffer實際上就是一個內(nèi)存緩沖區(qū), 這和一般編輯器中都一樣, 應該很好理解.
3.4 Emacs Lisp
Emacs最基礎(chǔ)的部分是用c寫的,其他部分都是用Emacs Lisp語言寫的,Emacs Lisp語言是基于lisp語言的. lisp是LISt Processor的縮寫, 即鏈表處理語言, 所以lisp語言的操作都是基于鏈表的, 它的語法也是鏈表結(jié)構(gòu), 鏈表第一個元素表示函數(shù)名, 其他元素是參數(shù), 比如通常語言中的a+b, 在lisp就是(+ a b)
3.5 mode
mode有major mode和minor mode之分, 每個緩沖區(qū)對應一個major mode, 也只有一個major mode, 但是可以有多個minor mode. Emacs對每一種文件都有一個mode.
3.6 命令
你對Emacs所有的操作都是對Emacs的命令的調(diào)用。比如,你在text-mode里,當你按下任何字母鍵進行編輯的時候,實際上是調(diào)用的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基礎(chǔ)知識簡介
總結(jié)
- 上一篇: iOS 13 小技巧深挖 | 如何通过快
- 下一篇: 鲍鱼是不是鱼类 (鱿鱼是不是鱼类动物)