注意:以下指令中标注的按鍵,大寫的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-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
指定行移動
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
替換目前項不跳轉
,
不替換目前項并跳轉到下一項
替換全部剩下的查詢結果
!
回到上一個比對結果
^
退出查詢替換
進入遞歸編輯(c-m-c退出)
多窗格
首先解釋一下,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
微型緩沖區
盡可能多地補全
補全至多一個單詞
補全并執行
顯示可能的補全項
?
切換到上一個輸入
切換到下一個輸入
用正規表達式往後搜尋曆史記錄
m-r
用正規表達式往前搜尋曆史記錄
m-s
終止指令
緩沖區
選擇另一個緩沖區
c-x b
列出所有緩沖區
c-x c-b
關閉一個緩沖區
c-x k
交換字元
c-t
交換單詞
m-t
交換行
c-x c-t
交換表達式
c-m-t
交換
拼寫檢查
見車目前單詞拼寫
m-$
檢查區域内所有單詞
m-x ispell-region
檢查整個緩沖區
m-x ispell-buffer
标簽
查找标簽
m-.
查找下一個标簽
c-u m-.
指定一個新标簽
m-x visit-tags-table
在标簽表内的所有檔案用正規表達式搜尋
m-x tags-search
在所有檔案内運作查詢替換
m-x tags-query-replace
繼續最後一個标簽搜尋或查詢替換
m-,
shells
執行一個外部指令
m-!
在目前區域運作一shell指令
m-|
使用一個外部指令處理目前區域
c-u m-|
啟動一個shell
m-x shell
矩形區域
複制矩形區域到寄存器
c-x r r
删除矩形區域
c-x r k
拉回矩形區域内容
c-x r y
插入一個矩形區域
c-x r o
清空矩形區域
c-x r c
矩形區域内每行内容替換為字元串
c-x r t
縮寫
增加全局縮寫
c-x a g
增加模式縮寫
c-x a l
給這個縮寫增加全局擴充
c-x a i g
給這個縮寫增加模式擴充
c-x a i l
擴充縮寫
c-x a e
動态擴充上一個單詞
正規表達式
比對換行符之外的任何字元
.
任意次重複
*
一次或一次以上重複
+
一次或一次也沒有
轉義字元
/c
分支
/|
分組
/(.../)
第n組
/n
單詞開始或結束
/b
非單詞開始或結束
機關
開始
結束
$
詞
/<
/>
緩沖區
/'
字元類别
比對
不比對
字元集合
[ ... ]
[^ ... ]
/w
國際化字元集
指定語言
m-x set-language-environment
顯示所有輸入法
m-x list-input-methods
開啟或禁用輸入法
c-/
設定指令編碼系統
c-x ret c
顯示所有編碼系統
m-x list-coding-systems
選擇編碼系統
m-x prefer-coding-system
資訊
進入資訊文檔閱讀器
c-h i
在資訊文檔中查找指定的函數或變量
c-h c-i
在節點中移動
往前滾動
反向滾動
節點開始處
節點間移動
下一個節點
n
上一個節點
p
上一層
u
通過名字選擇菜單項
選擇第n個菜單項
填轉到節點
f
傳回上一次所在的節點
l
傳回到目錄節點
d
通過名字跳轉到任意節點
g
其他:
進入快速指南
h
退出資訊文檔
q
用正規表達式搜尋節點
寄存器
儲存區域到寄存器
c-x r s
插入寄存器内容到緩沖區
c-x r i
儲存目前位置到寄存器
c-x r spc
跳轉到儲存在寄存器中的位置
c-x r j
鍵盤宏
開始記錄鍵盤宏
c-x (
結束記錄鍵盤宏
c-x )
執行最後一個宏
c-x e
追加内容到最後一個鍵盤宏
c-u c-x
給最後一個鍵盤宏命名
m-x name-last-kbd-macro
插入鍵盤宏的lisp定義到目前緩沖區
m-x insert-kbd-macro