Emacs_快捷鍵列表
Emacs_快捷鍵列表
emacs -nw 以終端模式運行emacs
LC_CTYPE=zh_CN.UTF-8 emacs
C = Control
M = Meta = Alt | Esc
Alt 可以粘滯 Esc 不能粘滯
S = Shift
註意:
以上命令中標註的按鍵,大寫的C代表Control,在鍵盤上通常是Ctrl鍵,而M代表Meta,在鍵盤上通常是Alt鍵,S則代表Shift,在鍵盤上通常是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。
Del = Backspace 刪除前一個字符
C-d = delete 刪除(delete)後一個字符
啟動Emacs
在有圖形界面的環境下只需要在終端輸入Emacs按回車或者找到啟動emacs程序的圖標打開就可以了。
在沒有圖形界面的環境或者偽終端下需要使用字符界面的Emacs可以輸入emacs -nw(以終端模式運行)。
C-z 掛起Emacs
掛起在圖形界面下通常是把Emacs窗口最小化的意思,而在字符界面下則是把Emacs掛起到後臺後回到終端,比如在GNU/Linux字符終端下按C-z會回到shell,使用jobs命令可以列出你掛起的所有任務,使用fg可以返回以最後一次掛起的任務,fg %num可以選擇回到任意一個被掛起的任務。
恢復任務 fg [job number](將後臺程序放到前臺)或者 bg [job number](將前臺程序放到後臺)
C-x C-z 退出Emacs
如果沒有未保存的文件,那麽這條命令會直接退出Emacs程序,否則它會提示是否保存文件。
基本快捷鍵(Basic )
C-x C-f "find"文件, 即在緩沖區打開/新建一個文件
C-x C-s 保存文件
C-x C-w 使用其他文件名另存為文件
C-x C-v 關閉當前緩沖區文件並打開新文件
C-x i 在當前光標處插入文件
C-x b 新建/切換緩沖區
C-x C-b 顯示緩沖區列表
C-x k 關閉當前緩沖區
C-z 掛起emacs
C-x C-c 關閉emacs
光標移動基本快捷鍵(Ba sic Movemen t)
C-f 後一個字符
C-b 前一個字符
C-p 上一行
C-n 下一行
M-f 後一個單詞
M-b 前一個單詞
C-a 行首
C-e 行尾
C-v 向下翻一頁
M-v 向上翻一頁
M-< 到文件開頭
M-> 到文件末尾
C-l 重新繪制屏幕畫面,當前行放在畫面中心處
編輯(Editint )
M-n 重復執行後一個命令n 次
C-u 重復執行後一個命令4 次
C-u n 重復執行後一個命令n 次
C-d 刪除(delete)後一個字符
M-d 刪除後一個單詞
Del 刪除前一個字符
M-Del 刪除前一個單詞
C-k 移除(kill)一行
C-Space 設置開始標記(例如標記區域)
C-@ 功能同上, 用於C-Space 被操作系統攔截的情況
C-w 移除(kill)標記區域的內容
M-w 復制標記區域的內容
C-y 召回(yank)復制/移除的區域/行
M-y 召回更早的內容(在kill 緩沖區內循環)
C-x C-x 交換光標和標記
C-t 交換兩個字符的位置
M-t 交換兩個單詞的位置
C-x C-t 交換兩行的位置
M-u 使從光標位置到單詞結尾處的字母變成大寫
M-l 與M-u 相反使從光標位置到單詞結尾處的字母變成小寫
M-c 使從光標位置開始的單詞的首字母變為大寫
重要快捷鍵(Impor tant)
C-g 停止當前運行/輸入的命令
C-x u 撤銷前一個命令
C-_ 或 C-/ 編輯撤銷
M-x revert-buffer RETURN (照著這個輸入)撤銷上次存盤後所有改動
M-x recover-file RETURN 從自動存盤文件恢復
M-x recover-session RETURN 如果你編輯了幾個文件, 用這個恢復
在線幫助(Online -Help)
C-h c 顯示快捷鍵綁定的命令
C-h k 顯示快捷鍵綁定的命令和它的作用
C-h l 顯示最後100 個鍵入的內容
C-h w 顯示命令被綁定到哪些快捷鍵上
C-h f 顯示函數的功能
C-h v 顯示變量的含義和值
C-h m 顯示當前編輯緩沖區所在編輯模式的有關資料
C-h a 這個概念涉及到哪些命令
C-h b 顯示當前緩沖區所有可用的快捷鍵
C-h t 打開emacs 教程
C-h i 打開info 閱讀器
C-h C-f 顯示emacs FAQ
C-h p 顯示本機Elisp 包的信息
搜索/替換(Seach /Replace)
C-s 向後搜索
C-r 向前搜索
C-g 回到搜索開始前的位置(如果你仍然在搜索模式中)
M-% 詢問並替換(query replace)
Space 或y 替換當前匹配
Del 或n 不要替換當前匹配
. 僅僅替換當前匹配並退出(替換)
, 替換並暫停(按Space 或y 繼續)
! 替換以下所有匹配
^ 回到上一個匹配位置
RETURN 或q 退出替換
使用正則表達式(Reg ular expres sion)搜索/替換
可在正則表達式中使用的符號:
^ 行首
$ 行尾
. 單個字符
.* 任意多個(包括沒有)字符
\< 單詞開頭
\> 單詞結尾
[] 括號中的任意一個字符(例如[a-z]表示所有的小寫字母)
M C-s RETURN 使用正則表達式向後搜索
M C-r RETURN 使用正則表達式向前搜索
C-s 增量搜索
C-s 重復增量搜索
C-r 向前增量搜索
C-r 重復向前增量搜索
M-x query-replace-regexp 使用正則表達式搜索並替換
窗口命令(Window Commands)
C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切換至其他窗格
C-x 0 關閉窗格
C-x 1 關閉除了光標所在窗格外所有窗格
C-x ^ 擴大窗格
M-x shrink-window 縮小窗格
M C-v 滾動其他窗格內容
C-x 4 f 在其他窗格中打開文件
C-x 4 0 關閉當前緩沖區和窗格
C-x 5 2 新建窗口(frame)
C-x 5 f 在新窗口中打開文件
C-x 5 o 切換至其他窗口
C-x 5 0 關閉當前窗口
C-x 5 b 創建新窗格並顯示另一個編輯緩沖區
書簽命令(Bookma rk commands )
C-x r m 在光標當前位置創建書簽
C-x r b 轉到書簽
M-x bookmark-rename 重命名書簽
M-x bookmark-delete 刪除書簽
M-x bookmark-save 保存書簽
C-x r l 列出書簽清單
d 標記等待刪除
Del 取消刪除標記
x 刪除被標記的書簽
r 重命名
s 保存列表內所有書簽
f 轉到當前書簽指向的位置
m 標記在多窗口中打開
v 顯示被標記的書簽(或者光標當前位置的書簽)
t 切換是否顯示路徑列表
w 顯示當前文件路徑
q 退出書簽列表
M-x bookmark-write 將所有書簽導出至指定文件
M-x bookmark-load 從指定文件導入書簽
Shell
M-x shell 打開shell 模式
C-c C-c 類似unix 裏的C-c(停止正在運行的程序)
C-d 刪除光標後一個字符
C-c C-d 發送EOF
C-c C-u 刪除當前行(unix 下的C-u)
C-c C-z 掛起程序(unix 下的C-z)
M-p 顯示前一條命令
M-n 顯示後一條命令
Shell Command Output
M-! 打開Shell Command Output 模式
DIRectory E Ditor (dire d)
C-x d 打開dired
C(大寫C) 復制
d 標記等待刪除
D 立即刪除
e 或f 打開文件或目錄
g 刷新當前目錄
G 改變文件所屬組(chgrp)
k 從屏幕上的列表裏刪除一行(不是真的刪除)
m 用*標記
n 光標移動到下一行
o 在另一個窗格打開文件並移動光標
C-o 在另一個窗格打開文件但不移動光標
P 打印文件
q 退出dired
Q 在標記的文件中替換
R 重命名文件
u 移除標記
v 顯示文件內容
x 刪除有D 標記的文件
Z 壓縮/解壓縮文件
M-Del 移除標記(默認為所有類型的標記)
~ 標記備份文件(文件名有~的文件)等待刪除
# 標記自動保存文件(文件名形如#name#)等待刪除
*/ 用*標記所有文件夾(用C-u */n 移除標記)
= 將當前文件和標記文件(使用C-@標記而不是dired 的m 標記)比較
M-= 將當前文件和它的備份比較
! 對當前文件應用shell 命令
M-} 移動光標至下一個用*或D 標記的文件
M-{ 移動光標至上一個用*或D 標記的文件
% d 使用正則表達式標記文件等待刪除
% m 使用正則表達式標記文件為*
+ 新建文件夾
> 移動光標至後一個文件夾
< 移動光標至前一個文件夾
s 切換排序模式(按文件名/日期)
或許把這個命令歸入這一類也很合適:
M-x speedbar 打開一個獨立的目錄顯示窗口
Telnet
M-x telnet 打開telnet 模式
C-d 刪除後一個字符或發送EOF
C-c C-c 停止正在運行的程序(和unix 下的C-c 類似)
C-c C-d 發送EOF
C-c C-o 清除最後一個命令的輸出
C-c C-z 掛起正在運行的命令
C-c C-u 移除當前一行
M-p 顯示前一條命令
M-n 顯示後一條命令
Text
只能在text 模式裏使用
M-s 使當前行居中
M-S 使當前段落居中
M-x center-region 使被選中的區域居中
宏命令(Macro-c ommands)
C-x ( 開始定義宏
C-x ) 結束定義宏
C-x e 運行最近定義的宏
M-n C-x e 運行最近定義的宏n 次
M-x name-last-kbd-macro 給最近定義的宏命名(用來保存)
M-x insert-kbd-macro 將已命名的宏保存到文件
M-x load-file 載入宏
C-u C-x ( 執行最後一次錄制的宏,然後允許再增加新按鍵組合
C-x q 在宏定義裏面插入一個查詢
C-u C-x q 在宏定義裏面插入一個遞歸編輯
M-C-c 退出遞歸編輯
編程(Program ming)
M C-\ 自動縮進光標和標記間的區域
M-m 移動光標到行首第一個(非空格)字符
M-^ 將當前行接到上一行末尾處
M-; 添加縮進並格式化的註釋
C, C++和Java 模式
M-a 移動光標到聲明的開始處
M-e 移動光標到聲明的結尾處
M C-a 移動光標到函數的開始處
M C-e 移動光標到函數的結尾處
C-c RETURN 將光標移動到函數的開始處並標記到結尾處
C-c C-q 根據縮進風格縮進整個函數
C-c C-a 切換自動換行功能
C-c C-d 一次性刪除光標後的一串空格(greedy delete)
為了實現下面的一些技術, 你需要在保存源代碼的目錄裏運行"etags *.c *.h *.cpp"(或者源代碼的其他的擴展名)
M-.(點) 搜索標簽
M-x tags-search ENTER 在所有標簽裏搜索(使用正則表達式)
M-,(逗號) 在tags-search 裏跳至下一個匹配處
M-x tags-query-replace 在設置過標簽的所有文件裏替換文本
GDB(調試器)
M-x gdb 在另一個的窗格中打開gdb
版本控制(Versio n Control)
C-x v d 顯示當前目錄下所有註冊過的文件(show all registered files inthis dir)
C-x v = 比較不同版本間的差異(show diff between versions)
C-x v u 移除上次提交之後的更改(remove all changes since last checkin)
C-x v ~ 在不同窗格中顯示某個版本(show certain version in differentwindow)
C-x v l 打印日誌(print log)
C-x v i 標記文件等待添加版本控制(mark file for version control add)
C-x v h 給文件添加版本控制文件頭(insert version control header intofile)
C-x v r 獲取命名過的快照(check out named snapshot)
C-x v s 創建命名的快照(create named snapshot)
C-x v a 創建gnu 風格的更改日誌(create changelog file in gnu-style)
============= End
Emacs_快捷鍵列表