Emacs 快速鍵
掌握Emacs 的快速鍵可以說是Emacs 愛好者的基本功,也是提高編輯速度和品質所必備
的,但是初學者可能記不住那麼多的快速鍵必要時可以翻一下,最常用的快速鍵數量也就數十
個。Emacs 的快速鍵都是綁定於ctrl 和alt(或稱meta)上的,例如c-x 就是ctrl+x ,m-x 就是
alt+x。當然所有的按鍵都可以自訂。
檔案操作
C-x C-f 開啟檔案,出現提示時輸入/username@host:filepath 可編輯FTP 檔案
C-x C-v 開啟一個檔案,取代當前緩衝區
C-x C-s 儲存檔案
C-x C-w 存為新檔案
C-x i 插入檔案
C-x C-q 切換為唯讀或者讀寫入模式
C-x C-c 退出Emacs
編輯操作
C-f 前進一個字元
C-b 後退一個字元
M-f 前進一個字
M-b 後退一個字
C-a 移到行首
C-e 移到行尾
M-a 移到句首
M-e 移到句尾
C-p 後退一行
C-n 前進一行
M-x goto-line 跳到指定行
C-v 向下翻頁
M-v 向上翻頁
M-< 緩衝區頭部
M-> 緩衝區尾部
C-M-f 向前匹配括弧
C-M-b 向後匹配括弧
C-l 當前行置中
M-n or C-u n 重複操作隨後的命令n 次
C-u 重複操作隨後的命令4 次
C-u C-u 重複操作隨後的命令8 次
C-x ESC ESC 執行曆史命令記錄,M-p 選擇上一條命令,M-n 選擇下一條命令
C-d 刪除一個字元
M-d 刪除一個字
C-k 刪除一行
M-k 刪除一句
C-w 刪除標記地區
C-y 粘貼刪除的內容
注意:C-y 可以粘貼連續C-k 刪除的內容;先按C-y,然後按M-y 可以選擇粘貼被刪除的
內容
C-@ 標記開始地區
C-x h 標記所有文字
C-x C-x 交換游標位置和地區標記區開頭
M-w 複製標記地區
C-_ or C-x u 撤消操作
執行SHELL 命令
M-x shell 開啟SHELL
M-! 執行SHELL 命令 (shell-command)
M-1 M-! 執行SHELL 命令,命令輸出插入游標位置,不開啟新輸出視窗
M-| 針對某一特定地區執行命令(shell-command-on-region), 比如 C-x h M-|uuencode
視窗操作
C-x 0 關閉本視窗
C-x 1 只留下一個視窗
C-x 2 垂直均分視窗
C-x 3 水平均分視窗
C-x o 切換到別的視窗
C-x s 儲存所有視窗的緩衝
C-x b 選擇當前視窗的緩衝區
C-x ^ 縱向擴大視窗
C-x } 橫向擴大視窗
緩衝區列表操作
C-x C-b 開啟緩衝區列表
d or k 標記為刪除
~ 標記為未修改狀態
% 標記為唯讀
s 儲存緩衝
u 取消標幟
x 執行標記的操作
f 在當前視窗開啟該緩衝區
o 在其他視窗開啟該緩衝區
目錄操作
C-x d 開啟目錄模式
s 按日期/檔案名稱排序顯示
v 閱讀游標所在的檔案
q 退出閱讀的檔案
d 標記為刪除
x 執行標記
D 馬上刪除當前檔案
C 拷貝當前檔案
R 重名名當前檔案
+ 建立檔案夾
Z 壓縮檔
! 對游標所在的檔案執行SHELL 命令
g 重新整理顯示
i 在當前緩衝區的末尾插入子目錄的內容
[n]m 標記游標所在的檔案,如果指定n,則從游標所在的檔案起後n 個檔案被標記
[n]u 取消當前游標標記的檔案,n 的含義同上
t 反向標記檔案
%-m 正則標記
q 退出目錄模式
說明:在目錄模式中,如果輸入!,在命令列中包含*或者?,有特殊的含義。*匹配當前光
標所在的檔案和所有標記的檔案,?分別在每一個標記的檔案上執行該命令。
程式編譯
M-x compile 執行編譯操作
M-x gdb GDB 排錯
M-x dbx DBX 排錯
M-x xdb XDB 排錯
M-x sdb SDB 排錯
搜尋模式
C-s key 向前搜尋
C-s 尋找下一個
ENTER 停止搜尋
C-r key 反向搜尋
C-s C-w 以游標所在位置的字為關鍵字搜尋
C-s C-s 重複上次搜尋
C-r C-r 重複上次反向搜尋
C-s ENTER C-w 進入單詞搜尋模式
C-r ENTER C-w 進入反向單詞搜尋模式
M-x replace-string ENTER search-string ENTER 替換
M-% search-string ENTER replace-string ENTER 互動替換
C-r 在進入尋找/替換模式後,該命令進入迭代編輯模式
C-M-x 退出迭代編輯模式,返回到尋找/替換模式
C-M-s 向前正則搜尋
C-M-r 向後正則搜尋
C-M-% 正則互動替換
SHELL 模式
C-c C-c 相當於Bash 下的C-c
C-c C-z 相當於Bash 下的C-z
C-c C-d 相當於Bash 下的C-d
M-p 執行前一條命令
C-n 執行下一條命令
C-c C-o 刪除最後一條命令產生的輸出
C-c C-r 螢幕滾動到最後一條命令輸出的開頭
C-c C-e 螢幕滾動到最後一套命令輸出的結尾
C-c C-p 查看前一條命令的輸出
C-c C-n 查看後一條命令的輸出
列印資料
M-x print-buffer 先使用pr,然後使用lpr
M-x lpr-buffer 直接使用lpr
M-x print-region
M-x lpr-region
收發郵件
M-x mail 發送郵件, C-c C-s 發送,C-c C-c 發送並退出
M-x rmail 接受郵件
定製
Emacs 使用者可以根據自身的需要和偏好對編輯器進行定製。強大而自由的個人定製功能
是Emacs 受到廣泛歡迎的重要原因之一。定製Emacs 主要有三種方法。
第一種方法是使用Emacs 的互動式定製功能。Emacs 提供了圖形化的互動介面,使使用者
能夠對可定製的公開變數進行設定。這種方法使Emacs 的初學者不需要接觸Emacs Lisp 代
碼即可完成定製。
第二種方法是將一系列按鍵記錄為宏,調用這一宏可以重複進行已經記錄的一系列複雜操
作。宏可以儲存並命名,以便按名調用,不過同一時刻只能存在一個匿名的宏。
第三種方法是通過使用Emasc Lisp 完成Emacs 的定製。這種方法最為複雜,但是也提
供了更多的靈活性和更強大的功能。使用者通常將個人定製的Emacs Lisp 代碼儲存在一個名為.
emacs 的設定檔中,Emacs 程式運行之初便讀取這一檔案,完成使用者要求的配置。使用者可
以通過.emacs 檔案重設變數、重新定義按鍵的綁定(key bindings)、以及定義新的命令,
以方便使用者個人的使用。很多進階使用者的.emacs 檔案的個人化配置長達數百行甚至更多,這
些個人的定製使他們的Emacs不僅與預設配置的功能不同,每個人的Emacs之間也千差萬別。
這種差異能很好的滿足不同個性的偏好和不同工作的需求。
如果一段Emacs Lisp 代碼確實有用,它通常會被打包並發布給其他使用者。在網際網路上能
找到很多這樣來自第三方的elisp 庫,例如能用於編輯維基百科條目的wikipedia-mode。Use
net 上的新聞群組gnu.emacs.sources 專門發布新的elisp 庫。有些第三方代碼最終還成為了E
macs“標準庫”的一部分。