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