[C Language Notes] Emacs 教學 (1) : 介紹、基礎指令
Published in
5 min readAug 16, 2019
- 在學習 Cousera 上 Duke University 所開的課程 Writing, Running, and Fixing Code in C 所教學與使用到的編輯器即為 Emacs。
- 此編輯器對於本科為機械的我實屬不認識(想說以前不都用Visual Studio, Sublime…) 藉機會整理出筆記來複習
- 來認識和學習這個重多碼農推薦的 editor 吧!
Introduction
About “editor”
- 編輯器是生產例的關鍵
- 其最重要的目標,是不阻礙你的想法與思緒成為程式碼
- 一個有經驗的programmer,有時候可以達到進入專心打code的境界(而不用去思考各種操作如何實現)
- 編輯器的設計核心理念,是讓你可以完完全全透過鍵盤實現所有操作,而不需要花費心思在移動滑鼠、點選菜單這類容易讓你分心的小動作
- 藉由熟悉各種鍵盤操作,你可以將這些指令內化成為肌肉記憶,就不用耗費注意力在上面,專心於編譯任務上
編輯器通常有下列三種增進生產力的特色
- Syntax highlighting
- Automatic indentation according to the structure of the language
- The ability to interact with the other tools used by the programmer — the debugger
* 在 Emacs ,會使用一種 debugger 叫作 gdb
About “Emacs”
五倍紅寶石的這篇文我覺得有很淺顯易懂地介紹了大家 editor 特性,並且在 Emacs 上有特別說明,可參考逛逛
接下來的部分是基本操作指令介紹,上面那邊文的下半部也是,不過是一個更詳細的版本。我的版本應該會更傾向於「初學者」一開始該認識的。所以看完我的再看上面的應該會有循序漸進的學習感 XD
Basic Emacs Operation
注:此編譯系統係Duke University所提供環境
emacs filename
: 以emacs來開啟特定檔案C-x C-f
: 找尋特定檔案C-x 2
: 將視窗一分為二。在上面找到檔案後,可能想同時看原本檔案跟後來打開的,可以配合C-x b
(改變至前一個buffer)將一個畫面改回去
* 若buffer不是想要的畫面,可以用搜尋來改變其一視窗C-x o
: 在兩個視窗變換游標C-x C-s
: 存檔C-z
: suspend emacs /fg
: continue suspended jobcat filename
: print contents of filename (stay tuned in UNIX basics)
Git operation
- Git是一個非常受歡迎且廣泛使用的版本控制系統(Revision Control System)。更多的介紹在下面連結的文,歡迎參考
git add
: 開始追蹤一個檔案git commit -m "message"
: 以文字記錄改變git push
: 推送至遠端保存git pull
: 從遠端讀取變更記錄
Editing Files with Emacs
注: M
= Alt / Ctrl
= C
Ctrl-s
: 往下搜尋 /Ctrl-r
: 往上搜尋
* 搜尋是移動的一種方式Ctrl-l
: redraw screen / 適用於有時候往下搜尋會卡在畫面不會動Ctrl-x u
: undo (所有動作的前一步)- 只想還原某部分的編輯呢?
你可以先標記(set mark)要還原的部分:Ctrl-space
再使用Ctrl-x u
來還原標記區域的操作 Ctrl-a
: 移動游標至句首 /Ctrl-e
: 移動游標至句尾Ctrl-k
: 剪下單行至句尾的部分 (k: kill)Ctrl-y
: 貼上剪下的 (y: yank)- 剪下特定區域文字?
先Ctrl-space
選定區域
再使用Ctrl-w
來剪下區域 - 複製區域:
Ctrl-space
+M-w
* 如果要複製的區域是一個被(){}包起來的東西,可以用Ctrl-s
去找,會直接把找到的範圍都 cover 起來 M-y
: 不貼上複製的,而是貼上前一次剪下的M-/
: 完成未完成(但已出現過的)單字 → 懶人專用...- 鍵盤巨集(Keyboard macro):
C-x
(開始錄製)+ 所有鍵盤上的行為 +C-x)
(結束錄製)C-x e
: 重複動作一次 / 繼續holde
: 不停重複
好啦!今天的筆記到此為止,喜歡就請訂閱分享按讚囉哈哈哈