Emacs學習筆記(2): 初識Emacs

來源:互聯網
上載者:User
文章目錄
  • 1.Emacs是什麼
  • 2. Emacs能做什麼
  • 3. Emacs的介面
  • 4.基本概念--命令
  • 5. 基本概念--快速鍵
  • 6.基本概念--模式

內容提要

1.Emacs是什麼

2. Emacs能做什麼

3. Emacs的介面

4.基本概念--命令

5. 基本概念--快速鍵

6. 基本概念--模式

Emacs學習筆記2: 初識Emacs1.Emacs是什麼

其實很難給Emacs下一個定義。正統的說法也許是"Emacs即Editor MACroS(宏編輯器),是一種文字編輯器"。

最初人們認為Emacs是一個編輯器(Editor),與Vim一起並稱為兩大神器,據說Vim是編輯器之神而Emacs是神之編輯器,又據說世界上的程式員分三種,一種使用Emacs,一種使用vim,剩餘的是其它。

也有人認為Emacs是一個架構在編輯器上的Integration Environment,除了最基本的編輯功能,還可以完成檔案管理、終端類比、瀏覽網頁、收發郵件、編譯器等工作,以及煮咖啡。

更有人說Emacs是偽裝成編輯器的作業系統,甚至說Emacs是一種信仰。

Emacs最初由RichardStallman在1975年開發,之後產生了眾多的衍生版本,而目前使用得最多的兩個版本是RichardStallman在1984年開發的GNUEmacs和1991年由JamieZawinski寫成的XEmacs。Emacs可謂曆史悠久,目前的GNU Emacs的版本是23.4。一部Emacs的曆史,等於一部電腦史,一部世界駭客史。本文不想將編輯器大戰的戰火燒到這裡,所以還是就此打住,來看看Emacs能做什麼。

2. Emacs能做什麼

王垠師兄如是說:

據我所知,Emacs 的能力包括:
1.    編輯文本
2.    編輯程式
3.    作為其它程式的介面
4.    作為作業系統
5.    煮咖啡

Emacs是一個具有超強擴充性,超強定製性的操作平台,它能做什麼取決於你對它的定製和擴充。Emacs之所以強大,就來源於其近乎無限的可定製性和可擴充性。

3. Emacs的介面

未定製的Emacs如所示:

整個視窗在Emacs中叫做frame,圖形介面下的Emacs可以開啟多個frame。每個frame從上到下分成3部分,分別是緩衝區,狀態列和回顯區。

緩衝區是編輯的主地區,但是在這裡操作的還不是真正的檔案,而是檔案的一個緩衝(buffer)。只有執行寫入操作時,才會將buffer的內容寫入到檔案。緩衝區可以分成多個地區,緩衝不同的內容。這些地區在Emacs中成為"視窗"。

緩衝區之下是狀態列,顯示當前的一些狀態資訊,比中從左至右依次為:
U: 當前的檔案編碼是UTF-8, 如果是GBK會顯示c
**: 檔案狀態,**表示未儲存,--表示可寫,%%表示唯讀
Emacs1: 是當前編輯的檔案的名稱
All: 表示當前緩衝區已經顯示檔案的所有內容,否則會顯示比如Bot,表示處於檔案的末尾處
L23: 當前游標所在的行數
fundamental: 當前的模式
等等,不同發行版的Emacs顯示的狀態列內容可能會有所不同。

最下面是回顯區,提示當前進行中的操作。比如"檔案已儲存"之類的資訊。如果一個命令沒有輸入完,這裡還會顯示已經輸入的指令,提示使用者。

4.基本概念--命令

對Emacs所有的操作都是通過調用命令實現的。對於一些常用的命令,會定義快速鍵以便快速使用。
不管是否有快速鍵,都可以通過M-x command 的方式執行命令。(M-x即Alt+x,是一種快速鍵,後面會有介紹)比如輸入斷行符號,相當於:
M-x newline
通過M-x執行命令時,可以使用 TAB 補全,使用 M-p 上翻, M-n 下翻。
Emacs中的取消通常是連按三下ESC:
ESC ESC ESC (M-x keyboard-escape-quit)
但是在命令執行過程中,有可能該命令無法使用(比如有些命令是互動,需要輸入一些參數),所以中止一條命令的執行最好使用C-g (M-x keyboard-quit)。

5. 基本概念--快速鍵

本質上,快速鍵只是一種發送命令的方法!
Emacs的快速鍵通常以按鍵組合的方式定義。如M-x 表示Alt+x。前面的字母M代表修飾符,Emacs定義的修飾符如下:
C-:Control
M-: Alt(應該是Meta,在 PC 上,Meta鍵 通常對應 ALT 鍵)
C-M-: 同時按住 Ctrl 和 Alt
S-:Shift
RET:Return
TAB:Tab
ESC:Esc,等價於M-。比如,C-M-r ,等價於ESC C-r
SPC:空格鍵
DEL:退格鍵
Delete:刪除鍵

上面提到了ESC C-r。這是一種組合方式,表示先按ESC,再按C-r。Emacs中的很多快速鍵定義成組合的方式。如 C-x C-c(M-x save-buffers-kill-emacs)
此外還有些命令可以傳遞參數,在Emacs的標記法中用 (#) 代表。如:
C-u (#) C-f 代表重複#次C-f

6.基本概念--模式

Emacs是一種“有模式”的編輯器。如果用過Vim就很容易理解。不過Emacs中的模式分成主要模式(major mode)和次要模式(minor mode)兩種。
主要模式由檔案類型決定,每個buffer開啟檔案時會根據檔案類型決定其主要模式。常見的主要模式有:

fundamental-mode:預設的 Emacs 模式,擁有最少設定和綁定
text-mode:編輯文本的基本模式
c-mode:用於編輯 C 程式原始碼
lisp-interaction-mode:用於編輯和編譯 Lisp 代碼
ptex-mode:用於編輯 TeX 文檔

次要模式可以組合到主要模式中,常見的次要模式比如:

abbrev-mode:用於產生和使用縮寫
auto-fill-mode:用於自動文字迴繞、填充較長的行和段落
line-number-mode:顯示當前行號
overwrite-mode:覆蓋模式,代替預設的插入模式

可以通過命令來指定模式:M-x  mode_name
對於一個buffer來說,當前的主要模式只能有一種,當指定主要模式時,原來的主要模式會被替換;而當前的次要模式可以有多種。
如果輸入的模式包含在當前模式中,對於主要模式,會清空所有的次要模式;對於次要模式,會關閉這個次要模式。
模式的變化在狀態列中可以看到。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.