C
-表明按住Ctrl鍵
M
-表明按住Alt鍵,也能夠用按一下
ESC
放開代替
最早要記住的
M
-x <cmd> 輸入指令執行,在輸入時用Tab能夠自動補全或列出項目
C
-g 取消當前操做指令
C
-h k <key> 查看當前按鍵綁定的指令及介紹
移動插入點(光標)
C
-n/p/b/f 到 下一行、上一行、前一字符、後一字符
M
-b/f 到 前、後一單詞
C
-a/e 到 行首、末
M
-a/e 到 句首、末
M
- 到 文件首、末
C
-v/
M
-v 下、上翻屏
C
-l 循環 將當前光標行顯示在窗口下、中、上位置
C
-u <num> <xx> 重複執行以後的 xx 命令 num 次,不輸入num默認爲
4
C
-u
C
-v 向下滾動
4
行
編輯
Back/
C
-d 刪除 前、後字符
M
-Back/
M
-d 移除 前、後單詞
C
-k/
M
-k 移除到 行末、句末
C
-/ undo/
redo
C
-x u undo/
redo
C
-w 剪切
C
-y 召回(粘貼)(粘貼移除的、複製、剪切的內容)
C
-c 複製(emacs通常也默認定製了與
OS
的剪切複製粘貼相同的快捷鍵)
查找
C
-s
C
-s 查找下一個
C
-r 查找上一下
C
-g 一次返回,二次結束查找
回車 中止到當前查找到的內容
替換
M
-%
標記
M
-@
文件操做
C
-x
C
-c 退出emacs
C
-x
C
-f 打開文件
C
-x
C
-s 保存文件
C
-x
C
-v 在當前緩衝區從新打開一個文件,能夠用於清除undo歷史!!
C
-x
1
最大化當前緩衝,關閉其它
C
-x
2
/
3
垂直、水平建立新緩衝區
C
-x o 切換到其它緩衝區
C
-x
C
-b 列出緩衝區
C
-x b 提示輸入緩衝區名稱,切換當前窗口的緩衝區
C
-x k 刪除當前緩衝區
C
-j 換行回車,有些模式下比較直接回車好用,有增長縮進之類的功能
------
理解一些概念
buffer
緩衝區,內存中的數據,打開文件時讀入內容到內存,修改後保存纔會修改到磁盤上的文件。
window
窗口,緩衝區的一個展現區域
frame
OS
上的一個emacs程序窗口
mode 模式
mode有主模式,輔助模式,主模式就像vim中設置當前filetype同樣,當前編輯的是ruby或者python源代碼,根據不一樣文件類型,設置按Tab縮進時縮進不一樣的字符數,把不一樣的詞看成關鍵字時行語法高亮等等,同一時間只能選一個主模式。試着多開幾個窗口,執行text-mode ruby-mode python-mode試下。emacs打開文件時會自動根據文件擴展名或內容檢查並設置主模式。
輔助模式就是窗口是否要自動換行,是否顯示行號等,輔助模式能夠多個同時啓用。
undo
在
EMACS
中想要將已經作過的動做放棄,以恢復原狀。
EMACS
所提供的 undo,能夠連續恢復最近使用過的指令。
undo 的順序是最新使用過的指令最早被 undo ,第二次使用 undo 則恢復第二新的指令,任何指令的輸入(除了 undo 自己以外) 都會使指令輸入的順序重整, 這也同時影響 undo 的順序。
使用 undo 有一個限制,就是 undo 只能 undo 對緩衝區內容形成改變的指令。對於只是改變遊標動做的指令,是沒法以 undo 來恢復舊觀。若全部修改過內容的指令,都以 undo 恢復原狀後, 再一次使用 undo 的指令,echo area 會出現以下的訊息:No further undo information.
當使用了 undo 以後,還想要在
redo
這個已被 undo 的動做時, 有一個技巧能夠達成如此的效果。
1
.首先鍵入一個不會改變緩衝區內容的指令(如光標移動的指令),使原來
2
.存放指令的順序因新指令的加入而改變。
3
.再使用一次 undo 的指令,就能夠達到
redo
的效果了。
undo的行爲很難描述,示例:
新建一個文件
執行幾個修改內容的指令 <
1
回車
2
回車
3
回車>, 這時undo歷史裏有
6
條記錄
undo順序爲
654321
, 繼續undo則提示No further undo information
按下左右方向鍵(雖然移不動光標),這時undo歷史裏有
12
條記錄了,前
6
條undo就變成
redo
了,順序
123456654321
再按下方向鍵,undo歷史記錄數量再翻倍
emacs的undo不會丟失任何操做,你先作一些操做,undo,再作另外一些操做,若是是其它編輯器,第一次undo的動做就失蹤了,emacs裏卻一直存在着,緣由同上。多試幾回就明白了。