emacs 快速入門

簡介

emacs 是Unix上的編輯器佼佼者,在命令列上打個"emacs"就好了,一上來只是提示, 你要先開個新檔並且給檔名才會到這個檔的編輯緩衝區(buffer)。另外如果不想用 window模式,例如有時網路很慢,或者沒有X的顯示允許權,可以用emacs -nw啟動 terminal模式。

其實在X下他也有選單(menu)可以用,不需要背命令,背那些熱鍵(Hotkey),雖然我 有一些朋友就這樣用,不過我還是要說這樣無法發揮他應有的功能。由於來往兩個 模式太麻煩,所以我們有熱鍵這個東西,在文字輸入模式下,按個熱鍵就可以完成 一些需要打入命令的事情來。熱鍵多用幾次,其實就也忘不了了。

有些鍵其實初學者已經不需要記了,例如往左往右這種鍵,這是為了有些鍵盤沒 有上下左右Page up/Page down等等。當然玩的越熟,你才會喜歡往左往右一些用 Ctrl組合成的鍵。因為你的手指一直在asdfjkl;上面。

基本熱鍵

這邊先列出常用的基本熱鍵﹔

檔案
C-x C-c		:離開 emacs
C-x C-f		:開檔
C-x C-s		:存檔
C-x C-w		:另存新檔

游標移動:
C-a		:移到行首
C-e		:移到行尾
M-f		:向後移一個字
M-b		:向前移一個字
HOME		:移到檔頭
END		:移到檔尾
M-m		:移到這行第一個字元

常用的鍵
M-x		:執行一個emacs命令
C-g		:離開一個emacs命令
C-_		:UNDO
C-s		:搜尋  一直按一直往下找
M-%		:搜尋與替代(按!全部換掉,要不,會一個一個問按y/n回答)
M-C-s		:regular express 搜尋

M-DEL		:往前砍個字
M-d		:往後砍個字
C-k		:砍掉游標後所有字
M-t		:轉換兩字
C-x C-t		:轉換兩行

    

區塊: 一般說來在X 視窗下,我們可以用滑鼠就可以標示文字了, 但是在X下面我們不用copy/paste了,只要用滑鼠左鍵標好,然後用滑鼠中 鍵就可以paste了。emacs的區塊沒有所謂的column mode的區塊。

C-SPCE = C-@	:開始區塊標示,然後移動游標
		:如果想看到反白請先下emacs 命令"transient-mark-mode"
		:但如果用了這個,滑鼠的左鍵標示就看不到反白了喔。
C-x h		:標示整個編輯區(就是整個檔案)
C-w		:砍掉標示的區塊(用滑鼠右鍵按兩下或按del - 這個要20版以上的才有)
C-y		:把剛剛砍掉的或在區塊中的文字回存(也可以用滑鼠中鍵)

多檔與多窗
C-x 5 2		:開一個新窗子在新的frame
C-x 3		:開新垂直窗子在同一個frame
C-x 1		:只留一個窗子
C-x o		:改到其他(other)窗子
C-x b		:改到其他buffer(編輯區)
C-x k		:kill掉目前編輯區
C-x C-b		:列出所有編輯檔案

基本巨集
C-x (		:開始紀錄你所按的鍵
C-x )		:結束你所紀錄的鍵
C-x e		:執行剛剛紀錄的所有組合按鍵
M-n C-x e	:執行n遍剛剛的按鍵

TAB		:對齊indent
M-C-\		:對區塊做一次程式的對齊(indent)
	

TAB的奧妙

其實TAB在命令緩衝區(叫minibuffer,不過不管在vi還是emacs,我們不要侷限於 那些專有名詞,只要捉住要領,就好像vi裡面文字模式叫insert mode,不用刻意 去記)有非常多的好用,例如忘了某個命令或檔名,只要多打幾下TAB他就會秀出 可能的所有命令與檔名。試試看先按M-x進入命令緩衝區,打個open-file,這個 就是上面熱鍵的C-x C-f,然後按TAB鍵。開檔其實也可以不給檔名,直接按"." 就會秀出目前目錄的所有檔,按老鼠中鍵去選擇。

emacs設定檔

$HOME/.emacs是emacs 的設定檔,它其實是像一種巨集程式(雖然它不是), emacs讀這些文稿式的程式,來做一些設定,所以其實強大的emacs是由一些已經 針對一些需求寫好的一堆文稿程式所組成。這種script其實是一種叫Lisp的程式。 如果有用過pe2的人應該會記得你可以改編一些功能在pe2.pro。這個LISP在 emacs裡面也有這樣的功能,只是更為強大。強大到可以拿emacs來寫mail,讀 news,做版本控制等等。因為他也有定義變數,迴圈,條件等等功能。在 /usr/share/emacs/version/下面有一些伴隨emacs的.el檔,就是這些檔案讓emacs 變成無敵超人的。通常你是看到一些*.elc檔案,這些是所謂的emacs byte-code檔 ,emacs內部有個compiler可以將.el檔編譯成.elc檔,跑起來比較快。通常安裝 時只會安裝elc檔而已了。emacs在每次啟動時會自動讀你的.emacs檔。 以下我們會來試著設定一些emacs內定的一些變數命令讓他有些生命。