Emacs常用命令快速參考
Emacs常用命令快速參考
Emacs常用命令的匯總,來自Emacs參考卡片
註意:以下命令中標註的按鍵,大寫的C代表Control,在鍵盤上通常是Ctrl鍵,而M代表Meta,在鍵盤上通常是Alt鍵,S則代表Shift,在鍵盤上通常是Shift鍵,也就是
C |
Control |
M |
Alt |
S |
Shift |
這三個鍵在Emacs裏通常作為組合鍵的前導按鍵使用,也就是說,執行一條命令前可能需要按住這個鍵不放,比如搜索命令是C-s,要執行這個命令首先要按住Ctrl鍵不放,再按下字母s鍵;而打開文件命令是C-x C-f,要打開文件就必須按下Ctrl鍵不放,依次按下x和f(當然也可以按下Ctrl不放再按下x,放開,再按下Ctrl不放再按f);有的命令組合鍵和非組合鍵都要用到,比如保存所有文件是C-x s,需要按下Ctrl不放的時候按下x,然後放開所有按鍵,再按下s;也有兩個組合按鍵一起使用的,比如使用正則表達式進行增量搜索的快捷鍵是C-S-%,這就要求你同時按下Ctrl和Alt不放開,再按下s。
啟動Emacs
在有圖形界面的環境下只需要在終端輸入Emacs按回車或者找到啟動emacs程序的圖標打開就可以了。
在沒有圖形界面的環境或者偽終端下需要使用字符界面的Emacs可以輸入emacs -nw,也就是增加一個-nw參數。
掛起Emacs |
C-z |
掛起在圖形界面下通常是把Emacs窗口最小化的意思,而在字符界面下則是把Emacs掛起到後臺後回到終端,比如在GNU/Linux字符終端下按C-z會回到shell,使用jobs命令可以列出你掛起的所有任務,使用fg可以返回以最後一次掛起的任務,fg %num可以選擇回到任意一個被掛起的任務。
退出Emacs |
C-x C-z |
如果沒有未保存的文件,那麽這條命令會直接退出Emacs程序,否則它會提示是否保存文件。
文件
打開文件 |
C-x C-f |
保存文件 |
C-x C-s |
保存所有文件 |
C-x s |
插入其他文件到當前緩沖區 |
C-x i |
在當前緩沖區打開另一個文件 |
C-x C-v |
另存為文件 |
C-x C-w |
獲取幫助
打開快速指南 |
C-h t |
獲取按鍵幫助 |
C-h k |
獲取函數幫助 |
C-h f |
打開Emacs幫助手冊 |
C-h r |
錯誤恢復
放棄當前命令或終止正在執行的操作 |
C-g |
恢復因系統崩潰而丟失的文件 |
M-x recover-file |
撤銷上一次操作 |
C-x u或C-_ |
還原緩沖區的內容 |
M-x revert-buffer |
刷新屏幕 |
C-l |
增量搜索
正向搜索 |
C-s |
反向搜索 |
C-r |
使用正則表達式正向搜索 |
C-M-s |
使用正則表達式反向搜索 |
C-M-r |
選擇上一個搜索結果 |
M-p |
選擇下一個搜索結果 |
M-n |
退出搜索並停留在當前搜索到的位置 |
RET |
中止當前搜索 |
C-g |
移動
移動的單位 |
向後 |
向前 |
字符 |
C-b |
C-f |
單詞 |
M-b |
M-f |
行 |
C-p |
C-n |
當前行開頭或結尾 |
C-a |
C-e |
句 |
M-a |
M-e |
段 |
M-{ |
M-} |
頁 |
C-x [ |
C-x ] |
表達式 |
C-M-b |
C-M-f |
函數 |
C-M-a |
C-M-e |
緩沖區開頭或結尾 |
M-< |
M-> |
垂直滾動屏幕 |
C-v |
M-v |
水平滾動屏幕 |
C-x < |
C-x > |
滾動當前行到屏幕中央 |
C-u |
C-l |
指定行移動 |
M-g M-g |
刪除
刪除的單位 |
向後 |
向前 |
字符 |
DEL |
C-d |
單詞 |
M-DEL |
M-d |
行 |
M-0 C-k |
C-k |
句 |
C-x DEL |
M-k |
表達式 |
M-- C-M-k |
C-M-k |
刪除當前行 |
C-S-DEL |
|
刪除區域 |
C-w |
|
復制區域到刪除環 |
M-w |
|
刪除到字符 |
M-z char |
|
從刪除環中拉回內容 |
C-y |
|
從刪除環中拉回更早期的內容 |
M-y |
註:這裏的DEL在你的鍵盤上可能是Backspace
標記
設置標記 |
C-@ |
在當前光標位置和標記處跳轉 |
C-x C-x |
設置單詞標記 |
M-@ |
標記段 |
M-h |
標記頁 |
C-x C-p |
標記表達式 |
C-M-@ |
標記函數 |
C-M-h |
標記整個緩沖區 |
C-x h |
查詢替換
交互替換 |
M-% |
使用正則表達式 |
M-x query-replace-regexp |
在查詢替換模式下: |
|
替換當前項並跳轉到下一項 |
SPC |
替換當前項不跳轉 |
, |
不替換當前項並跳轉到下一項 |
DEL |
替換全部剩下的查詢結果 |
! |
回到上一個匹配結果 |
^ |
退出查詢替換 |
RET |
進入遞歸編輯(C-M-c退出) |
C-r |
多窗格
首先解釋一下,Emacs裏一個框(Frame)是值窗口系統中的一個窗口,一個窗格(Window)則是指顯示在一個Frame
命令描述 |
窗格 |
框 |
刪除所有其他窗格 |
C-x 1 |
|
垂直分割 |
C-x 2 |
C-x 5 2 |
刪除當前窗格 |
C-x 0 |
C-x 5 0 |
水平分割 |
C-x 3 |
|
滾動其他窗格 |
C-M-v |
|
切換到另一個窗格 |
C-x o |
C-x 5 o |
在其他窗格切換緩沖區 |
C-x 4 b |
C-x 5 b |
在其他窗格顯示緩沖區 |
C-x 4 C-o |
C-x 5 C-o |
在其他窗格打開文件 |
C-x 4 f |
C-x 5 f |
在其他窗格以只讀方式打開文件 |
C-x 4 r |
C-x 5 r |
在其他窗格打開目錄 |
C-x 4 d |
C-x 5 d |
在其他窗格查找標簽 |
C-x 4 . |
C-x 5 . |
窗格高度增加 |
C-x ^ |
|
窗格寬度減少 |
C-x { |
|
窗格寬度增加 |
C-x } |
格式化
縮進當前行 |
TAB |
縮進區域 |
C-M-/ |
縮進表達式 |
C-M-q |
增加縮進 |
C-x TAB |
在當前位置後增加新行 |
C-o |
當前位置到行尾的內容下移 |
C-M-o |
刪除當前位置附近的空行 |
C-x C-o |
將當前行連接到上一行 |
M-^ |
刪除光標附近的空白 |
M-/ |
大小寫轉換
單詞轉換為大寫 |
M-u |
單詞轉換為小寫 |
M-l |
單詞轉換為首字母大寫 |
M-c |
區域轉換為大寫 |
C-x C-u |
區域轉換為小寫 |
C-x C-l |
微型緩沖區
盡可能多地補全 |
TAB |
補全至多一個單詞 |
SPC |
補全並執行 |
RET |
顯示可能的補全項 |
? |
切換到上一個輸入 |
M-p |
切換到下一個輸入 |
M-p |
用正則表達式往後搜索歷史記錄 |
M-r |
用正則表達式往前搜索歷史記錄 |
M-s |
終止命令 |
C-g |
緩沖區
選擇另一個緩沖區 |
C-x b |
列出所有緩沖區 |
C-x C-b |
關閉一個緩沖區 |
C-x k |
緩沖區
交換字符 |
C-t |
交換單詞 |
M-t |
交換行 |
C-x C-t |
交換表達式 |
C-M-t |
交換
交換字符 |
C-t |
交換單詞 |
M-t |
交換行 |
C-x C-t |
交換表達式 |
C-M-t |
拼寫檢查
見車當前單詞拼寫 |
M-$ |
檢查區域內所有單詞 |
M-x ispell-region |
檢查整個緩沖區 |
M-x ispell-buffer |