2010/11/20

emacs 快速入門教學

  在 UNIX 平台一般系統安裝預設都會有 vi (vim)文字編輯器,在職場上有使用UNIX (AIX/Linux/...)平台的人應該都知道這是沒有什麼好選擇的,所以很多人都要習慣那很奇怪的Esc 鍵切換不同模式操作.但現在Linux 隨手可得的情形下,安裝完系統後可以建議再加裝強大的 emacs .這連 iMac 的 OS X (macOS)都是有預設安裝好的,但就是沒有emacs。介紹大家使用 emacs 的最大理由是可以用較人性人的操作方式來做文字編輯及寫程式及做其它許多工作。但 emacs 操作的按鍵也是一堆,許多人看了可能也是搖頭,自己整理出一份最少也最常用的按鍵供大家參考,相信可以讓大家很快速的入門. 首先,讓大家先了解到 emacs 多數按鍵操作都是配合 Control 及 Meta (Esc 或 Alt) ,以下開始只要是需要按 Control 鍵的都用 C- 代替Meta 鍵都是以 M- 代替.個人建議 Meta 鍵使用 Alt較方便,手指不用移動較大的距離. 
檔案存取
C-x C-f 開檔 (File) (Control + x 按完後再按 Control + f)
C-x C-s 存檔 (Save)
C-x C-w 另存新檔 (Write) 括弧中的英文字方便記憶
搜尋
C-s Search (正向搜尋)
C-r Reverse Search(反向搜尋)
取代
M-x repl 按 Enter , 再按 s 再按 Enter 輸入要被取代的字串後再按 Enter,輸入新字串後再按 Enter
分割視窗 及 視窗間的移動
C-x 1 關閉其它視窗 只留目前視窗
C-x 2 split window 2 (水平分割視窗)
C-x 3 split window 3 (垂直分割視窗)
C-x 0(零, zero) 關閉目前視窗 close current window
C-x o 英文字母 O(歐) 跳到其它(other)視窗 (視窗版XEmacs可以用 mouse 點到所要的視窗即可切換過去)
C-z 暫時離開 emacs , fg 或 exit 回到 emacs
C-x b 改到其他buffer(編輯區)
C-x k :kill掉目前編輯區
C-x C-b :列出所有編輯檔案
游標移動 (太多太難記, 使用以下幾個就好, emacs, XEmacs 都可用)
C-Home 檔頭
C-End 檔尾
Home 行首
End 行尾
PageUp 上頁
PageDown 下頁
移到指定 行數 M-x goto-line 輸入數字
M-g g 輸入行號    
一般來說可以用方向鍵移動游標即可。建議您有空再進階學習 C-b 、 C-f 、 C-n 、 和 C-p :因為(1) 任何的終端機都能使用。(2)一旦您使用 Emacs 相當熟練了,您會發現鍵入這些 CONTROL 字元,比起使用方 向鍵快多了(節省將手移開打字區的時間)。(3) 一旦習慣這些 CONTROL字元指令,您很容易地學會其他進階的游標動作指令。
標示區塊及刪除
C-@ 標示起點(標示開始會出現反白顏色)
C-w 標示終點並刪除
C-y 復原刪除 yank(其實就是將刪除的內容再貼回來)
C-k 刪除目前位置到行尾
標示及選取/複製/貼上
先用 C-@ 標示開始位置, 再移動游標到標示結束點 Copy : ESC-w (M-w ) 複製標示文字, 標示反白會消失 Paste : C-y (yank) C-x h 標示整個檔案 C-g 解除標示
  其實如果只是純粹當個編輯器要記的按鍵也沒幾個,稍做練習就學會了.重點是 emacs 也有 Windows 及 Mac 版本. 學一次各平台都可以使用. 如果一下記不了這麼多按鍵也沒關係,安裝XEmacs 就有視窗介面及選單,搭配Mouse 使用可以少記一點,很容易入手.
程式編譯及除錯   
M-x compile (如何重覆執行上次執行過的 compile 指令不用再輸入 compile)   
M-x recompile   
M-x gdb 利用 gdb debug
M-x dired 瀏覽資料夾 (或用 C-x d) : 這個功能超好用,可以選某個資料夾的某個檔案按 Enter即可進入編輯 M-x shell (進入 shell)
C-z 暫時離開 emacs, 按 fg 或 exit 回到 emacs C-x u : Undo (復原上一個動作)
以下只要是 emacs 的快速入門常用按鍵,希望大家使用愉快.入門之後有餘力再來學進階的指定及 lisp 寫法會發現它真的是一個強大且了不起的”環境”. Have Fun !