Emacs中大量的按鍵操做都是各式各樣的組合按鍵(快捷鍵),下面是幾種一般的約定:shell
Ctrl
鍵:表示爲C
Alt
鍵:表示爲M
Shift
鍵:表示爲S
Ctrl+n
,就表示爲:C-n
,其含義表示同時按下鍵盤上的Ctrl
和n
鍵。有時候用多個組合按鍵來表示一種操做,好比如下按鍵序列:C-x C-f [文件路徑] <RET>
就表示打開文件
的操做,它表示這樣的操做含義:先同時按下Ctrl
和x
鍵,而後鬆開,緊接着立刻再同時按下Ctrl
和f
鍵,而後再鬆開,而後在下方的輸入欄中輸入文件路徑,輸入完以後按回車鍵(用<RET>
表示),最後就打開了一個文件。函數
還有一種按鍵順序:C-x o
,表示切換到另一個緩衝區,它是這樣一組按鍵:先同時按下Ctrl
和x
鍵,而後鬆開,而後緊接着按字母o
鍵。ui
還有另一種按鍵順序,好比如下按鍵序列:C-u [10] C-p
,就表示這樣的操做含義:先同時按下Ctrl
和u
鍵,而後鬆開,而後依次按1
和0
鍵,而後鬆開,最後再同時按Ctrl
和p
鍵。這組按鍵達到的效果就是把光標從當前位置往上移動10行。編碼
[輸入的內容]
<RET>
<Backspace>
表示退格鍵(刪除鍵),<Delete>
表示刪除鍵,<TAB>
表示TAB鍵,<Left>
表示左箭頭鍵,<Right>
表示右箭頭鍵,<Up>
表示上箭頭鍵,<Down>
表示下箭頭鍵,<f5>
表示F5鍵。文本操做,無外乎打開文件、編輯文件、保存文件,涉及的核心、最高頻命令很是簡單,整理以下:spa
C-x C-f [文件路徑] <RET>
:打開一個文件C-n
:將光標向下移動一行C-p
:將光標向上移動一行C-g
:取消以前的按鍵(將會成爲最經常使用的按鍵之一)C-x C-s
:保存文件C-x C-c
:退出EmacsC-x C-f [文件路徑] <RET>
:打開一個文件C-x C-s
:保存文件C-x 4 f [文件路徑] <RET>
:在一個新的窗格(緩衝區)中打開文件C-x 5 f [文件路徑] <RET>
:在一個新的窗口中打開文件C-n
:將光標向下移動一行C-p
:將光標向上移動一行C-b
:將光標左移一個字符C-f
:將光標右移一個字符M-f
:將光標右移一個單詞M-b
:將光標左移一個單詞C-v
:向下移動一屏M-v
:向上移動一屏C-l
:將當前光標所在行移動到屏幕中央(注意:這裏是字母L
)C-a
:將光標移到行首C-e
:將光標移到行尾M-S-<
:將光標移動到文件開頭M-S->
:將光標移動到文件末尾M-m
:將光標移動到行首的第一個非空白字符C-s [查找的內容]
:向前查找C-r [查找的內容]
:向後查找C-M-s [查找的內容]
:向前正則查找C-M-r [查找的內容]
:向後正則查找M-S-%
:查找並替換,操做步驟以下:按下M-S-%
鍵啓動查找替換,輸入要被替換的詞,回車,而後輸入要替換的詞,再回車。被替換的詞此時會高亮起來,這時,輸入y替換並跳到下一個,輸入n忽略並跳到下一個,輸入q結束,輸入!替換剩下的所有。C-S-e
:選中從當前位置到行尾的文本C-S-n
:從當前位置開始往下選中一行文本C-S-p
:從當前位置開始往上選中一行文本C-S-f
:從當前位置開始日後選中一個字符C-S-b
:從當前位置開始往前選中一個字符M-S-f
:從當前位置開始日後選中一個單詞M-S-b
:從當前位置開始往前選中一個單詞M-S-e
:選中從當前位置開始到當前句尾的文本M-S-a
:選中從當前位置開始到當前句首的文本C-S-@ [其餘移動操做]
:從一個起始位置,選中連續的字符,好比C-S-@ C-e
就表示選中從當前光標位置到行尾的全部字符C-S-v
:向下選擇一屏M-S-v
:向上選擇一屏C-S-l
:讓當前光標所在行居中C-x h
:全選C-k
:刪除光標到行尾的全部字符C-u [N] [操做序列]
:重複執行一個操做序列N次C-/
或C-x u
:撤銷(undo)上次操做,屢次按能夠撤銷以前的屢次操做C-g C-/
:重作(redo),用於重作上次的撤銷動做(撤銷以後後悔了,想恢復重作)<Backspace>
:刪除當前光標前的一個字符C-<Backspace>
:刪除當前光標前的一個單詞C-d
或<Delete>
:刪除當前光標後的一個字符M-<Backspace>
:剪切當前光標前的一個字符到剪貼板M-d
:剪切當前光標後的一個字符到剪貼板C-k
:剪切從光標到行尾的字符到剪貼板C-y
:粘貼剪貼板中的文本到當前光標位置M-w
:複製當前選中的字符C-w
:剪切當前選擇的字符到剪貼板C-a C-k
:剪切一整行到剪貼板中,其實也能夠用於刪除一整行C-e <RET>
:在當前行下方插入一空行C-x C-q
:讓當前buffer在「只讀」和「讀寫」兩種編輯模式之間切換首先要明確一下Emacs中窗格與窗口的概念的區別:每一個窗格其實就是一個緩衝區,一個窗口中能夠同時打開多個窗格,而窗口就是像Windows那樣的GUI窗口。命令行
C-x 1
:僅保留當前窗格,關閉其餘窗格C-x 2
:在垂直方向打開2個窗格C-x 3
:在水平方向打開2個窗格C-x o
:在不一樣窗格之間切換C-x 0
:關閉當前窗格C-x S-{
:減少當前窗格的水平寬度C-x S-}
:縮小當前窗格的水平寬度C-x S-^
:增大當前窗格的垂直高度C-M-v
:在另外一個窗格中向下滾動一屏(但光標還保留在當前窗格)C-M-S-v
:在另外一個窗格中向上滾動一屏(但光標還保留在當前窗格)M-x make-frame
:打開一個新窗口M-x delete-frame
:關閉當前窗口C-z
:掛起當前的窗口(至關於最小化當前的窗口)M-x describe-coding-system <RET>
:查看當前緩衝區的編碼格式C-x <RET> r <TAB>
:列出當前的全部編碼C-x <RET> f utf-8 <RET>
:改變當前緩衝區的編碼爲utf-8M-x [函數名] <RET>
:執行一個函數M-S-! [命令] <RET>
:執行一個命令行命令M-x shell <RET>
:在一個新窗格中、當前目錄位置打開命令行M-x goto-line <RET> [行號] <RET>
:跳轉到某一行,將其綁定到快捷鍵C-c j
:;; 快速跳到某一行 (global-set-key (kbd "C-c j") 'goto-line)
M-x electric-pair-mode <RET>
:打開括號配對模式C-x C-b
:在一個新窗格中列出當前全部的緩衝區C-x b xxx <RET>
:切換到名爲xxx
的緩衝區C-x k xxx <RET>
:關閉一個名爲xxx
的緩衝區(若是直接按回車,默認關閉的是當前緩衝區)C-x s
:一個個詢問是否保存當前每一個緩衝區的內容M-x kill-some-buffers <RET>
:一個個詢問是否關閉當前打開的緩衝區C-x <Left>
:在多個緩衝區之間切換C-x <Right>
:在多個緩衝區之間切換C-x d S-~ <RET>
:打開Emacs配置文件所在路徑C-h v load-path <RET>
:查看Emacs的加載路徑C-h t
:查看Emacs快速指南C-h f
:查看一個函數(命令)的幫助文檔C-h S-?
或M-x [help]
:查看幫助C-h c [命令序列]
:顯示命令序列對應的函數名C-h k [命令序列]
:顯示命令序列的詳細文檔(打開一個新窗格)C-h a [關鍵詞]
:打開一個新窗格列出全部含有此關鍵詞的命令C-h i
:查看信息字典文檔C-h r
:查看使用手冊C-h m
:查看當前緩衝區的major mode和minor mode及其介紹C-h b
:查看和當前緩衝區綁定的快捷鍵列表C-h v [變量名]
:查看某個變量的值C-h w [函數名]
:查看某個函數綁定的快捷鍵C-h i m [elisp] <RET>
:查看elisp文檔如下操做都是在系統命令行中的操做:code
emacs -nw -Q
:在命令行中打開Emacs,-nw
參數表示:no window
,-Q
參數表示:不顯示歡迎界面。在命令行打開Emacs後,各項操做和按鍵與在GUI窗口中是一致的