引子
人們都說Emacs是神器,安裝看看,這個神器確實夠神:沒有萌萌的圖標(biāo),沒有帥氣的界面,沒有性感的代碼地圖(SublimeText的mini map)。剛安裝好的Emacs,就是一個呆到爆、土掉渣、傻到頂?shù)摹鞍装V”編輯器。
“就評這也能說是神器?在如今的編輯器大戰(zhàn)中,Emacs也就是當(dāng)作一個老古董任人憑吊了吧”。
好吧,其實剛剛裝好的Emacs,就是一個剛剛初始的孩子,啥也不會,啥也不懂。都需要你親手去調(diào)教呢。將來是一個小家碧玉,還是一個大家閨秀,抑或是一個女漢子,一切皆有可能啊。唯一可以確定的,如果你持之以恒的調(diào)整相關(guān)配置,未來一定可以得到一個為你量身定制的文本編輯器。而且,這個編輯器在Windows、Linux、Mac OSX、等主流瀏覽器上都有發(fā)行。
這也就是說,你會得到一個包打天下的神兵喔,是不是很吸引人?
我有心開一個Emacs的入門專題。在寫這個專題的過程中,我也可以和大家一起學(xué)習(xí),一起進步。
好吧,下面咱們言歸正傳,開始今天的話題。
序
Emacs以令人眼花繚亂的組合鍵“聞名于世”。要想使用好Emacs,死記硬背是不行的,多多的使用才是正途。然而,閱讀Emacs使用手冊、教程,有時會感到不夠方便。因此各種各樣的“CheatSheet”應(yīng)運而生。簡單的吧各種按鍵組合羅列起來,做“快速索引”我覺得還不夠便捷。因此,我自己寫了這篇文章,把我整理的“CheatSheet”寫出來,作為積累保留以后檢索使用。
Emacs中的基本文字編輯
Emacs是文本編輯器,雖然經(jīng)過各位“牛人”的長期支持,Emacs已經(jīng)在向“操作系統(tǒng)”演進,通過眾多的“包”(Package),已經(jīng)可以做到絕大多數(shù)你需要她完成的功能,所以Emacs中最基本的仍然是文字編輯功能。
使用Emacs編輯文本,主要涉及的功能包括:光標(biāo)移動、刪除文字、剪貼板的使用、Undo/Redo、文件操作等。下面我們一個個的來講一講。
Emacs中的光標(biāo)移動
Eamcs中移動光標(biāo),和Windows操作系統(tǒng)中的絕大多數(shù)文本編輯器類似,可以使用“方向鍵”、“PageUP/PageDown”等按鍵完成。但是作為在“終端”時代生存至今的Emacs,還提供了讓雙手不離開鍵盤區(qū),就可以移動光標(biāo)的方法,而且在有的時候,這些組合按鍵的效率更高。
Emacs移動光標(biāo)的組合鍵不少,我用下面這張圖來說明。按圖索驥,已經(jīng)覆蓋了Emacs原生的光標(biāo)移動方法。
需要說明的是:在Emacs文檔中,“Meta”鍵對應(yīng)的是Windows鍵盤中的“Alt”鍵。

此外,Emacs移動到指定行的方法是:
M-g M-g:Emacs會要求輸入行號,移動光標(biāo)到指定行
Emacs中的刪除
在Emacs刪除文字有很多種方法。在說明相應(yīng)的操作方法前,我們需要先弄明白幾個概念:“刪除(Delete)”、“移除(Kill)”、“召回(Yank)”還有“移除環(huán)(Kill-Ring)”
好吧,“刪除”和“移除”在文本編輯的過程中實現(xiàn)的效果非常類似——對應(yīng)的字符或內(nèi)容在文檔中“消失”了。存在細(xì)微差別的地方在與取回這些“消失”的內(nèi)容的方法上:
被“刪除”的內(nèi)容,只能使用“撤銷(Undo)”的辦法來找回這些“消失的字符”。和大多數(shù)人預(yù)想的一樣,這些“消失的字符”只會重新出現(xiàn)在原來它們所在的地方。關(guān)于Emacs的刪除操作請看下圖:

Emacs的剪貼板以及Undo/Redo
被“移除”的內(nèi)容,除了可以使用“撤銷”的方法了找回內(nèi)容以外,還可以使用“召回”的方法讓這些“消失”的內(nèi)容出現(xiàn)在當(dāng)前光標(biāo)之后。這樣的操作效果和使用了“剪貼板”的效果類似了。
“召回”,是將移除的內(nèi)容插入到光標(biāo)所在位置的一種操作。使用召回操作,讓人有一種使用“剪貼板”的感覺。不過Emacs會記錄多次“移除”操作的內(nèi)容,這一點可要比windows操作系統(tǒng)提供的“剪貼板”功能要強大多了。這種記錄多次“移除”操作內(nèi)容的機制在Emacs中叫做“移除環(huán)”——Yank Ring。
“移除環(huán)”是Emacs存儲移除內(nèi)容的一種機制,其中含有多次“移除”操作的內(nèi)容。之所以稱其為“環(huán)”是因為在Emacs中提供了在光標(biāo)位置插入不同“移除內(nèi)容”的方法。而訪問“移除內(nèi)容”時是按照“環(huán)”的方式循環(huán)訪問的。關(guān)于Emacs的移除操作和召回操作請見下圖:

如果輸入時錯誤的使用了“撤銷”命令,而需要“撤銷前面的撤銷”操作,Emacs提供了“重做(Redo)”的方法:隨便移動一下光標(biāo),在使用“撤銷”命令 即可。
Emacs中的查找和替換
任何編輯器都有查找和替換的功能,Emacs也不例外。在Emacs中最常用的查找方法是“增量查找”。除此之外,Emacs還提供了“正則查找”、“詞組查找”、“簡單查找”三種方法。這些查找方法,一般來說,熟練掌握其中的一至兩類就足夠應(yīng)付日常使用的需要了。
“增量查找”是“邊輸入邊查找”的查找方式。也是在Emacs中使用最為頻繁的一種查找方式。“正則查找”則是輸入一個正則表達式來進行查找的方式。“詞組查找”意味著輸入的是一個詞組(在英文等語言環(huán)境下,詞組是有意義的。在中文環(huán)境下,應(yīng)用的就少一些了)。“簡單查找”和“增量查找”對應(yīng),是在用戶輸入完所有待查內(nèi)容后才啟動查找的方法。
幾類查找的操作方法見下圖:

有查找就有替換。在Emacs中,替換一般需要通過調(diào)用命令的方式實現(xiàn)。Emacs中提供的替換方式包括“全文替換”、“正則替換”、“交互式替換”三種方式。
其中“全文替換”和“正則替換”是從光標(biāo)位置向后替換文字。“交互式替換”是在替換的過程中有控制的確定是否執(zhí)行替換操作。
按Meta-%
即可啟動查找且替換模式。
Emacs中的文件操作
基礎(chǔ)的Emacs文件操作是創(chuàng)建、保存、另存。
- 創(chuàng)建新文件:
- 使用組合鍵
Ctrl-x Ctrl-f
打開“find file” - 在提示符處輸入一個不存在的文件名
- 回車確認(rèn)后,Emacs即創(chuàng)建了一個空的Buffer供輸入使用。
- 使用組合鍵
- 保存文件
Emac的保存文件非常簡單,只需要按下組合鍵Ctrl-x Ctrl-s
即可。 - 另存文件
要另存一個文件,按下組合鍵Ctrl-x Ctrl-w
,按提示輸入新的文件名即可。
小結(jié)
今天我們看到的是Emacs的基本操作。明天我們開始Emacs的訓(xùn)練之旅吧。期待我們的Emacs小兵快快成長。哈哈!
修訂記錄
- 2015-03-20: 根據(jù)讀者@魚小號的建議增加了Meta鍵在Windows下的說明,并修訂了圖1中的錯誤