iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0
Software Development

Emacs 來寫程式系列 第 2

[Emacs - 2] 基本使用及操作

Emacs 基本操作原則

  • Emacs 是在文字模式下的編輯器,當初的設計原則是盡量不使用滑鼠,甚至是方向鍵,讓兩手盡量留在鍵盤上
  • 所謂天下武功,唯快不破,想像如果您的操作都不需要離開鍵盤,想當然爾編輯檔案或程式的速度,應該是比一手拿著滑鼠,一手還要找按鍵快多了
  • 正因為不使用滑鼠跟上下鍵,對於現在的初學者會有些習慣上的改變,但這種學習絕對值得,即使我現在使用 iT 邦幫忙的編輯器,使用的功能鍵其實跟 Emacs 相通的

基本組合指令

  • Emacs 除了正常打中英文外,當需要移動游標或者執行指令時,會用到組合鍵,所謂組合鍵就是同時按兩個鍵,常用到的組合鍵有兩種:
  • Ctrl-[chr]: 同時按 Ctrl 及 [chr] 鍵
  • Meta-[chr]: 同時按 Meta/Alt 及 [chr] 鍵

游標移動指令

_ 前一行 Ctrl-p _
前一字元 Ctrl-b 游標 後一字元 Ctrl-f
前一單字 Meta-b 後一單字 Meta-f
_ 下一行 Ctrl-n _

您可以在您的編輯器試試看,是否可以不用上下鍵,用上列組合鍵來移動游標,可以的話,可能您的編輯器也是可以用 Emacs 指令, 其中 (p)revious, (n)ext, (b)ackward, (f)orward

較大範圍移動

_ 文件頭 Meta-< _
_ 前一頁 Meta-p _
行首 Ctrl-a 游標 行尾 Ctrl-e
句首 Meta-a 句尾 Meta-e
_ 下一頁 Meta-n _
_ 文件尾 Meta-> _

基本編輯

  • 刪除
    • 刪除字元 Ctlr-d (delete)
    • 刪除單字 Meta-d
  • 取消動作 Ctrl-x u (undo),同時按 Ctrl 跟 x 鍵,然後放掉按 u 鍵
  • 殺掉與貼上
    • Ctrl-k 殺掉 (kill) 一行
    • Meta-k 殺掉一句
    • Ctrl-y 貼上 (yank) 剛殺掉的一行或一句
  • 區塊
    • Ctrl-space 開始區塊,Ctrl-w 殺掉區塊
    • Ctrl-y 貼上 (yank) 剛殺掉的區塊

視窗

  • 當我們寫程式時,有時會同時開幾個檔案,這時分割視窗就很重要
  • Ctrl-x 2: 水平分割視窗
  • Ctrl-x 3: 垂直分割視窗
  • Ctrl-x 1: 只留游標當前視窗
  • Ctrl-x o: 游標移到下一個視窗

檔案

  • Ctrl-x Ctrl-f:找一個檔案 (f)ile,如果找不到會開新的檔案,開完的視窗稱為緩衝區 (buffer)
  • 緩衝區與小緩衝區 (buffer):小緩衝區是有時執行指令時,在狀態行底下的區域
  • Ctrl-x Ctrl-s:儲存檔案 (s)ave
  • Ctrl-x Ctrl-b:列出緩衝區 (b)uffer,也就是其他開過的檔案或系統有關訊息 (如 message...)
  • Ctrl-x b:切換緩衝區

狀態行

-UUU:----F1 my.org 20% L45 (Org FlyC- company yas) -----------------------------------------

  • 前面有檔案名稱,目前游標位置
  • 小括號中是使用模式,不同語言可以用不同模式,例如上例主模式是 org-mode
  • 使用 Meta-x xxx-mode 來切換模式
  • 次模式:次要的模式並不是主模式的其他選擇,而只是次要的更改,例如上例的 FlyC-, company, yas
    每一個次模式可以被它本身啟用或停止,和所有其他的次模式無關和您的主模式無關。所以您可以不使用次模式,或一個,或任何數量的次模式的組合

幫助指令

  • Ctrl-h ?:列出幫助項目
  • Ctrl-h c Ctrl-p:對於快速鍵名稱的幫助,Ctrl-h c 然後按下要幫助的組合鍵,這裡的例子是 Ctrl-p
  • Ctrl-h k Ctrl-p:對於函數說名文件,Ctrl-h k 然後需要幫助的組合鍵,這裡的例子是 Ctrl-p
  • Ctrl-h f:解釋函數,後面打入函數名稱

特殊指令

  • Ctrl-u 重複次數,例如 C-u 8 C-f,移動 8 個字元
  • Ctrl-g 取消或停止指令
  • Ctrl-l 中央指令
  • Ctrl-z 暫停執行 emacs
  • Ctrl-s, Ctrl-r 搜尋
  • Ctrl-x Ctrl-c 結束 emacs

如果不喜歡看這麼多文字的話,建議可以隨著我的 Youtube 影片一起學習

Yes

裡面的簡報可以到我的部落格來看

https://blog.onionstudio.com.tw/emacs-%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/


上一篇
[Emacs-1] 大綱簡介
下一篇
[Emacs-3] Emacs Lisp 簡介 - 1
系列文
Emacs 來寫程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言