按鍵約定
組合按鍵
Emacs中大量的按鍵操作都是各式各樣的組合按鍵(快捷鍵),下面是幾種通常的約定:
Ctrl鍵:表示為CAlt鍵:表示為MShift鍵:表示為S- 組合按鍵:比如向下移動一行的組合按鍵是
Ctrl+n,就表示為:C-n,其含義表示同時按下鍵盤上的Ctrl和n鍵。
按鍵順序
有時候用多個組合按鍵來表示一種操作,比如以下按鍵序列:C-x C-f [文件路徑] <RET>就表示打開文件的操作,它表示這樣的操作含義:先同時按下Ctrl和x鍵,然后松開,緊接着馬上再同時按下Ctrl和f鍵,然后再松開,然后在下方的輸入欄中輸入文件路徑,輸入完之后按回車鍵(用<RET>表示),最后就打開了一個文件。
還有一種按鍵順序:C-x o,表示切換到另外一個緩沖區,它是這樣一組按鍵:先同時按下Ctrl和x鍵,然后松開,然后緊接着按字母o鍵。
還有另外一種按鍵順序,比如以下按鍵序列:C-u [10] C-p,就表示這樣的操作含義:先同時按下Ctrl和u鍵,然后松開,然后依次按1和0鍵,然后松開,最后再同時按Ctrl和p鍵。這組按鍵達到的效果就是把光標從當前位置往上移動10行。
特殊按鍵
- 表示輸入內容,用方括號括起來:
[輸入的內容] - 表示回車鍵:
<RET> - 表示其他鍵:比如
<Backspace>表示退格鍵(刪除鍵),<Delete>表示刪除鍵,<TAB>表示TAB鍵,<Left>表示左箭頭鍵,<Right>表示右箭頭鍵,<Up>表示上箭頭鍵,<Down>表示下箭頭鍵,<f5>表示F5鍵。
Quick Start
文本操作,無外乎打開文件、編輯文件、保存文件,涉及的核心、最高頻命令非常簡單,整理如下:
C-x C-f [文件路徑] <RET>:打開一個文件C-n:將光標向下移動一行C-p:將光標向上移動一行C-g:取消之前的按鍵(將會成為最常用的按鍵之一)C-x C-s:保存文件C-x C-c:退出Emacs
常用操作分類匯總
文件操作
C-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-8
命令與函數操作
M-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文檔
命令行操作
以下操作都是在系統命令行中的操作:
emacs -nw -Q:在命令行中打開Emacs,-nw參數表示:no window,-Q參數表示:不顯示歡迎界面。在命令行打開Emacs后,各項操作和按鍵與在GUI窗口中是一致的
作者:m2fox
鏈接:https://www.jianshu.com/p/89b689a586b3
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。
