是(shi)可(ke)擴(kuo)展的、可(ke)定(ding)制的、自記錄的實時顯示(shi)文(wen)本編輯器。此(ci)參考適(shi)用于 Emacs 27+
要進入 Emacs,只(zhi)需輸(shu)入其(qi)名(ming)稱:
$ emacs
:- | :- |
---|---|
C-z | 掛起 Emacs |
C-x C-c | 永久退出 Emacs |
:- | :- |
---|---|
C-<key> | 表示按住控件,然后按 <key> |
M-<key> | 表示按 Esc 一次,然后按 <key> |
注意(yi):本備忘單遵循(xun)上(shang)述規則
返回 | 向前 | 要移動的實體 |
---|---|---|
C-b | C-f | Haracter |
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 | Sexp |
C-M-a | C-M-e | 功能 |
M-< | M-> | 緩沖區開始 (或結束) |
:- | :- |
---|---|
M-u | 大寫單詞 |
M-l | 小寫單詞 |
M-c | 大寫單詞 |
C-x C-u | 大寫區域 |
C-x C-l | 小寫區域 |
:- | :- |
---|---|
C-x C-f | 將文件讀入 Emacs |
C-x C-s | 將文件保存回磁盤 |
C-x s | 保存所有文件 |
C-x i | 將另一個文件的內容插入此緩沖區 |
C-x C-v | 將此文件替換為您的文件 |
C-x C-w | 將緩沖區寫入指定文件 |
C-x C-q | 切換緩沖區的只讀狀態 |
:- | :- |
---|---|
C-g | 中止部分鍵入或執行的命令 |
M-x 恢復會話 | 恢復因系統崩潰而丟失的文件 |
C-x u C-_ C-/ | 撤消不需要的更改 |
M-x 恢復緩沖器 | 將緩沖區恢復到其原始內容 |
C-l | 重繪垃圾屏幕 |
:- | :- |
---|---|
C-t | 轉置字符 |
M-t | 轉置詞 |
C-x C-t | 轉置線 |
C-M-t | 轉置性別 |
:- | :- |
---|---|
C-v | 滾動到下一個屏幕 |
M-v | 滾動到上一個屏幕 |
C-x < | 向左滾動 |
C-x > | 向右滾動 |
C-l | 將當前行滾動到 center, top, bottom |
:- | :- |
---|---|
M-g g | 轉到行 |
M-g c | 轉到字符 |
M-m | 返回縮進 |
:- | :- |
---|---|
C-@ C-SPC | 在標記在這里 |
C-x C-x | 交換點和標記 |
M-@ | 設置標記 arg 單詞 |
M-h | 標記段落 |
C-x C-p | 標記頁面 |
C-M-@ | 標記性 |
C-M-h | 標記功能 |
C-x h | 標記整個緩沖區 |
向后 | 向前 | 要殺死的實體 |
---|---|---|
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-W | 殺死區域 C-w |
M-w | 復制區域殺死環 |
M-z char | 殺死下一次出現的字符 |
C-y | 拉回最后一個被殺的東西 |
M-y | 用之前的殺戮替換最后的猛拉 |
:- | :- |
---|---|
C-x 1 | 刪除幫助窗口 |
C-M-v | 滾動幫助窗口 |
C-h a | Apropos:顯示匹配字符串的命令 |
C-h k | 描述一個鍵運行的功能 |
C-h f | 描述一個函數 |
C-h m | 獲取特定于模式的信息 |
幫助系統很簡單。鍵入 C-h
(或 F1
)并按照說明進行操作。如果您是第一次使用,請鍵入 C-h
t
以獲得教程
當顯(xian)示兩個命令(ling)時,第二(er)個命令(ling)是用于框架(jia)而不是窗口的(de)類似命令(ling)
:- | :- | :- |
---|---|---|
C-x 5 1 | C-x 1 | 刪除所有其他窗口 |
C-x 5 2 | C-x 2 | 拆分窗口,上方和下方 |
C-x 5 0 | C-x 0 | 刪除此窗口 |
:- | :- | :- |
---|---|---|
? | C-x 3 | 拆分窗口,并排 |
? | C-M-v | 滾動其他窗口 |
:- | :- | :- |
---|---|---|
C-x 5 o | C-x o | 將光標切換到另一個窗口 |
C-x 5 b | C-x 4 b | 在其他窗口中選擇緩沖區 |
C-x 5 C-o | C-x 4 C-o | 在其他窗口中顯示緩沖區 |
C-x 5 f | C-x 4 f | 在其他窗口中查找文件 |
C-x 5 r | C-x 4 r | 在其他窗口中以只讀方式查找文件 |
C-x 5 d | C-x 4 d | 在其他窗口中運行 Dired |
C-x 5 . | C-x 4 . | 在其他窗口中查找標簽 |
:- | :- | :- |
---|---|---|
? | C-x ^ | 讓窗戶變高 |
? | C-x { | 縮小窗口 |
? | C-x } | 讓窗口變寬 |
:- | :- |
---|---|
TAB | 縮進當前行(取決于模式) |
C-M-\ | 縮進區域(取決于模式) |
C-M-q | 縮進 sexp(取決于模式) |
C-x TAB | 縮進區域剛性 arg 列 |
M-; | 縮進評論 |
C-o | 在點后插入換行符 |
C-M-o | 將其余行垂直向下移動 |
C-x C-o | 刪除點周圍的空行 |
M-^ | 與上一個加入行(帶 arg,下一個) |
M-\ | 刪除點周圍的所有空白 |
M-SPC | 在點上正好放一個空格 |
M-q | 填寫段落 |
C-x f | 將填充列設置為 arg |
C-x . | 設置每行開頭的前綴 |
M-o | 設置面 |
:- | :- |
---|---|
C-h i | 輸入信息文檔閱讀器 |
C-h S | 在 Info 中查找指定的函數或變量 |
:- | :- |
---|---|
SPC | 向前滾動 |
DEL | 反向滾動 |
b | 節點的開始 |
:- | :- |
---|---|
n | 下一個節點 |
p | 上一個節點 |
u | 提升 |
m | 按名稱選擇菜單項 |
n | 按編號 (1–9) 選擇第 n 個菜單項 |
f | 遵循交叉引用(用 l 返回) |
l | 返回您看到的最后一個節點 |
d | 返回目錄節點 |
t | 轉到信息文件的頂部節點 |
g | 按名稱轉到任何節點 |
:- | :- |
---|---|
h | 運行信息教程 |
i | 在索引中查找主題 |
s | 搜索節點以查找正則表達式 |
q | 退出信息 |
以下鍵在 minibuffer
中定義
:- | :- |
---|---|
TAB | 盡可能完成 |
SPC | 最多完成一個單詞 |
RET | 完成并執行 |
? | 顯示可能的完成 |
M-p | 獲取先前的 minibuffer 輸入 |
M-n | 獲取稍后的 minibuffer 輸入或默認值 |
M-r | 正則表達式向后搜索歷史 |
M-s | 正則表達式向前搜索歷史 |
C-g | 中止命令 |
鍵入 C-x
ESC
ESC
以編輯并重復使用 minibuffer
的最后一個命令。鍵入 F10
以激活文本終端上的菜單欄項
:- | :- |
---|---|
M-. | 查找標簽(定義) |
C-u M-. | 查找標簽的下一個出現 |
M-x 訪問標簽表 | 指定一個新的標簽文件 |
M-x 標簽搜索 | 正則表達式搜索標簽表中的所有文件 |
M-x 標簽查詢替換 | 對所有文件運行查詢替換 |
M-, | 繼續最后一個標簽搜索或查詢替換 |
:- | :- |
---|---|
C-x b | 選擇另一個緩沖區 |
C-x C-b | 列出所有緩沖區 |
C-x k | 殺死一個緩沖區 |
:- | :- |
---|---|
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 ( | 開始定義鍵盤宏 |
C-x ) | 結束鍵盤宏定義 |
C-x e | 執行最后定義的鍵盤宏 |
C-u C-x ( | 附加到最后一個鍵盤宏 |
M-x name-last-kbd-macro | 命名最后一個鍵盤宏 |
M-x insert-kbd-macro | 在緩沖區中插入 Lisp 定義 |
:- | :- |
---|---|
. (dot) | 除換行符外的任何單個字符 |
* | 零次或多次重復 |
+ | 一次或多次重復 |
? | 零次或一次重復 |
\ | 引用特殊字符 |
\c | 引用正則表達式特殊字符 c |
| | 替代(“或”) |
\(...\) | 分組 |
\(:?...\) | 害羞的分組 |
\(:NUM...\) | 顯式編號分組 |
\n | 與第 n 組相同的文本 |
\b | 在斷字時 |
\B | 不在斷字 |
開始 | 結束 | 實體 |
---|---|---|
^ | $ | 行 |
\< | \> | 單詞 |
\_< | \_> | 象征 |
\‘ | \’ | 緩沖 |
這些 | 其他 | class |
---|---|---|
[...] | [^...] | 顯式集 |
\w | \W | 單詞語法字符 |
\sc | \Sc | 具有語法 c 的字符 |
\cc | \Cc | 類別 c 的字符 |
:- | :- |
---|---|
C-s | 向前搜索 |
C-r | 向后搜索 |
C-M-s | 正則表達式搜索 |
C-M-r | 反向正則表達式搜索 |
M-p | 選擇上一個搜索字符串 |
M-n | 選擇下一個稍后搜索字符串 |
RET | 退出增量搜索 |
DEL | 最后一個字符的撤消效果 |
C-g | 中止當前搜索 |
再次使用 C-s
或 C-r
在任一方向重復搜索。 如果 Emacs 仍在搜索,C-g
只取消不匹(pi)配的部分
:- | :- |
---|---|
M-% | 以交互方式替換文本字符串 |
M-x regexp | 使用正則表達式 |
SPC / y | 替換這個,繼續下一個 |
, | 換這個,別動 |
DEL / n | 不更換就跳到下一個 |
! | 替換所有剩余的匹配項 |
^ | 回到上一場比賽 |
RET | 退出查詢替換 |
C-r | 進入遞歸編輯(C-M-c 退出) |
:- | :- |
---|---|
M-! | 執行一個shell命令 |
M-& | 異步執行shell命令 |
M- | 在區域上運行 shell 命令 |
C-u M- | 通過 shell 命令過濾區域 |
M-x shell | 在window shell中啟動一個shell |
:- | :- |
---|---|
C-x RET l | 指定主要語言 |
M-x list-input-methods | 顯示所有輸入法 |
C-\ | 啟用或禁用輸入法 |
C-x RET c | 為下一個命令設置編碼系統 |
M-x list-coding-systems | 顯示所有編碼系統 |
M-x prefer-coding-system | 選擇首選的編碼系統 |
:- | :- |
---|---|
C-x r s | 在寄存器中保存區域 |
C-x r i | 將寄存器內容插入緩沖區 |
C-x r SPC | 將點的值保存在寄存器中 |
C-x r j | 跳轉到保存在寄存器中的點 |
:- | :- |
---|---|
C-u num | 數值參數 |
M-- | 否定論點 |
C-q char | 帶引號的插頁 |
:- | :- |
---|---|
C-x C-e | 評估點前的性 |
C-M-x | 評估電流定義 |
M-x eval-region | 評估區 |
M-: | 讀取和評估 minibuffer |
M-x load-library | 從加載路徑加載 Lisp 庫 |
:- | :- |
---|---|
M-x customize | 自定義變量和面 |
在 Emacs Lisp 中進(jin)行全局鍵綁定(ding):
(global-set-key (kbd "C-c g") ’search-forward)
(global-set-key (kbd "M-#") ’query-replace-regexp)
:- | :- |
---|---|
C-x a g | 添加全局縮寫 |
C-x a l | 添加模式本地縮寫 |
C-x a i g | 為這個縮寫添加全局擴展 |
C-x a i l | 為這個縮寫添加模式本地擴展 |
C-x a e | 顯式擴展縮寫 |
M-/ | 動態擴展前一個單詞 |
:- | :- |
---|---|
M-$ | 檢查當前單詞的拼寫 |
M-x ispell 地區 | 檢查區域內所有單詞的拼寫 |
M-x ispell 緩沖區 | 檢查整個緩沖區的拼寫 |
M-x flyspell 模式 | 切換即時拼寫檢查 |
(defun command-name (args)
"documentation" (interactive "template")
body)
(defun this-line-to-top-of-window (line)
"Reposition current line to top of window.
With prefix argument LINE, put point on LINE."
(interactive "P")
(recenter (if (null line)
0
(prefix-numeric-value line))))