emacs常用快捷键速查

 

本文内容均来自《学习GNU Emacs》第二版 机械工业出版社 Debra Cameron,Bill Rosenblall,Eric Raymond著,杨涛,杨晓云,王建桥等译


全部Emacs命令都有一个完整的名字,即时最简单的也不例外。

 

修改.emacs文件后,不重启emacs使配置生效,可以用M-x eval-buffer命令。 

 

键盘操作 命令名字     动作
**********************************************************
C-n   next-line     移动到下一行
C-x C-f find-file     打开一个指定的文件
C-j           换行

 


一个编辑缓冲区每次只能处于一种主模式中,退出一种主模式的办法是进入另一个主模式

主模式
模式                  功能
***********************************************************
基本模式(fundamental mode)      默认模式,无特殊行为
文本模式(text mode)           书写文字材料
缩进文本模式(indented text mode)    自动缩进文本
C模式(C mode)             书写C语言程序
C++模式(C++ mode)          书写C++语言程序
FORTRAN模式(FORTRAN mode)
EmacsLISP模式(EmacsLISP mode)
LISP模式(LISP mode)

 

副模式
模式                 功能
***********************************************************
自动换行模式(auto-fill mode)     开启字换行(word wrap)功能
改写模式(overwrite mode)       打字时替换而不是插入字符
自动保存模式(auto-save mode)
行号模式(line-number mode)     在状态行上显示当前文本行的编号

 


与文件操作有关的命令
键盘操作   命令名称                动作
*************************************************************
C-x C-f   find-file                 查找文件并在一个新缓存区里打开它
C-x C-v   find-alternate-file             读入另外一个文件替换掉用"C-x C-f"读入的文件
C-x i     insert-file               把文件插入到光标的当前位置
C-x C-s   save-buffer               保存文件
C-x C-w   write-file               把缓冲区内容写入一个文件
C-x C-c   save-buffers-kill-emacs         退出Emacs
C-h     help-command             进入Emacs的在线帮助系统
C-h f   describe-function           给出某个给定命令名的在线帮助信息
C-h k   describe-key             给出某个给定击键序列的在线帮助信息
C-h t   help-with-tutorial           启动Emacs教程
C-h i   info-goto-emacs-command-node   启动Info文档阅读器

 


光标移动命令速查表
键盘操作   命令名词         动作
*****************************************************************
C-f     forward-char       光标前移一个字符(右)
C-b     backward-char       光标后移一个字符
C-p     previous-line       光标前移一行(上)
C-n     next-line         光标后移一行
ESC f    forward-word       光标前移一个单词
ESC b   backward-word       光标后移一个单词
C-a    beginning-of-line      光标移到行首
C-e    end-of-line         光标移到行尾
ESC e   forward-sentence      光标前移一个句子
ESC a   backward-sentence     光标后移一个句子
ESC }   forward-paragraph     光标前移一个段落
ESC {   backward-paragraph    光标后移一个段落
C-v     scroll-up         屏幕上卷一屏
ESC v   scroll-down        屏幕下卷一屏
ESC <   beginning-of-buffer    光标前移到文件头
ESC >   end-of-buffer       光标后移到文件尾
(无)     goto-line         光标移动到第n行
(无)    goto-char        光标前进到文件的第n个字符
C-l     recenter         重绘画面,将当前行居中在画面
ESC n   digit-argument      重复执行n次后续命令
C-u n   universal-argument    重复执行n次后续命令(省略n时重复4次)

 


文本删除命令速查表
键盘操作  命令名词              动作
******************************************************
C-d    delete-char            删除光标位置上的字符
DEL    delete-backward-char        删除光标前面的字符
ESC d   kill-word             删除光标后面的单词
ESC DEL   backward-kill-word         删除光标前面的单词
C-k     kill-line                从光标位置删除到行尾
ESC k   kill-sentence           删除光标后面的句子
C-x DEL   backward-kill-sentence      删除光标前面的句子
C-y     yank               恢复被删除的文本
C-w    kill-region              删除文本快
(无)    kill-paragraph            删除光标后面的段落
(无)    backward-kill-paragraph       删除光标前面的段落

ESC C-k                    删除从行首到光标之间的内容

 


文本快操作命令速查表
键盘操作  命令名词              动作
******************************************************
C-@    set-mark-command        标记文本快的开始位置
C-w    kill-region
C-y     yank
ESC w     kill-ring-save            复制文本快
ESC h   mark-paragraph           标记段落
C-x h      mark-whole-buffer         标记整个缓冲区
ESC y   yank-pop              在用过"C-y"命令以后粘贴更早删除的文本
C-x C-x  exchange-point-and-mark      互换插入点和标记的位置

ESC x set-variale RETURN kill-ring-max RETURN        加大删除环的尺寸,默认保存30次删除操作

 


命令的中止和撤消
键盘操作  命令名词              动作
******************************************************
C-g    keyboard-quit             放弃当前命令
C-x u   advertised-undo           撤消上一次编辑
(无)    revert-buffer            把缓冲区恢复到上次对文件进行存盘时的状态

 

启用文本模式和自动换行模式
(setq default-major-mode 'text-mode)
(add-hook 'text-mode-hook 'turn-on-auto-fill)

 


递增查找命令速查表
键盘操作  命令名词            动作
******************************************************
C-s    isearch-forward        向前开始递增查找操作
C-r    isearch-backward        向后开始递增查找操作
RETURN  (无)               退出查找操作
C-g     keyboard-quit         取消递增查找操作
DEL    (无)               删除查找字符串中的字符
C-s C-s  (无)               重复刚才的查找操作

C-s C-w    把光标位置到下一个标点符号或空格符间的文本复制到查找字符串里去
C-s C-y    把光标位置到行尾之间内容复制到查找字符串中,它将原文中大写字母都转为小写
C-s ESC y   将删除环里内容复制到查找字符串,此后可用ESC p及ESC n切换删除环中条目

 


简单查找命令速查表
键盘操作                动作
*******************************************************
C-s RETURN searchstring RETURN    向前开始一次非递增查找操作
C-s                   向前找下一个
C-r RETURN searchstring RETURN    向后开始一次非递增查找操作
C-r                   向后查找下一个

 

单词查找
C-s RETURN C-w word-search-forward
C-r RETURN C-w word-search-backward

(无)    replace-string RETURN    从光标开始替换所有

 


查询-替换操作中的响应
键盘操作    动作
***************************************************
ESC %     开始查询-替换操作
SPACE或y    替换并前进到下一个位置
DEL或n    不替换并前进到下一个
.        替换当前后退出查询-替换操作
,        替换并显示替换情况(再按y才移动到下一个位置)
!        对后面全部替换并不再询问
^       返回上一次替换位置
RETURN或q  退出查询-替换操作
C-r      进入递归编辑状态
C-w       删除此次内容并进入递归编辑状态
ESC C-c    退出递归编辑状态
C-]      退出递归编辑状态和查询-替换操作

C-x ESC ESC   调用上次命令(ESC p和ESC n可以调用之前和后的命令)

 


正则表达式查找及替换命令速查表
键盘操作      命令名词            动作
*********************************************************
ESC C-s RETURN  re-search-forward         向前查找一个正则表达式
ESC C-r RETURN   re-search-backward       向后查找一个正在表达式
ESC C-s      isearch-forward-regexp    向前递增查找一个递增正则表达式
ESC C-r      isearch-backward-regexp    向后
(无)        query-replace-regexp      查询-替换一个正则表达式
(无)        replace-regexp         无条件对一个正则表达式做全局替换

 


窗口命令速查表
键盘操作  命令名词                  动作
*******************************************************
C-x 2   split-window-vertically         把当前窗口分割为上下两个窗口
C-x 3   split-window-horitontally         分为左右两个窗口
C-x >   scroll-right                窗口内容右卷
C-x <   scroll-left                窗口内容左卷
C-x o                       从一个窗口移动到另一个窗口
C-x 0                       关闭本窗口
C-x 1                       只保留本窗口,关闭其他窗口
(无)    delete-windows-on           关闭某个特定编辑缓冲区上的全部窗口
C-x ^                       加高本窗口
C-x }                       加宽本窗口
(无)    shrink-window              在垂直方向收缩窗口
C-x {                       在水平方向压窄本窗口一列
C-x -   shrink-window-if-larger-than-buffer   在高度上收缩到编辑缓冲区那么小
C-x +    balance-windows             在高度上将窗口的尺寸全都变成同样大小
ESC C-v                       卷动下一个窗口的内容
C-x 4 f                       在另一个窗口查找并打开一个文件,光标也移过去
C-x 4 b                      在另一个窗口打开选择的编辑缓冲区,光标移过去

 


编辑缓冲期操作命令速查表
键盘操作    命令名词          动作
*******************************************************
C-x b     switch-to-buffer      移动到指定的编辑缓冲区
C-x C-b    list-buffer         显示编辑缓冲区清单
C-x k     kill-buffer           删除指定的编辑缓冲区
(无)      kill-some-buffers      以问答方式删除各个编辑缓冲区
(无)      rename-buffer       把编辑缓冲区的名字改为指定的名字
C-x s     save-some-buffers      以问答方式存盘各个修改过的缓冲区                                           y,n,!,.,q,C-r进入查看模式,C-c退出查看模式

C-x C-q    把编辑缓冲区设为只读

 


编辑缓冲区清单操作命令速查表
键盘操作    动作                      执行情况
*********************************************************
n或SPACE    移动到清单下一个编辑缓冲区            立即执行
p或C-p     移动到上一个                  立即执行
d或k      标记上删除标记                  等待x执行
s       待存盘                     等待x执行
u或DEL    去掉操作标记                  立即执行
x         对加有操作标记缓冲区执行            立即执行
~       给编辑缓冲区加上未修改标记           立即执行
1       把编辑缓冲区满屏显示              立即执行
2       把这个和下一个编辑缓冲区显示到两个水平窗口     立即执行
f       在原本显示编辑缓冲区清单的窗口显示此编辑缓存区  立即执行
o       在另一个窗口显示此编辑缓冲区          立即执行
m        待显示标记                   等待v执行
v         显示m标记的缓冲区               立即执行
q       退出编辑缓冲区清单                 立即执行

 


书签命令操作速查表

键盘操作    命令                  动作

********************************************************

C-x r m    bookmark-set            设置书签
C-x r b     bookmark-jump           移动到书签指示的位置
(无)      bookmark-rename          重命名书签
(无)      bookmark-delete            删除书签
(无)      bookmark-save            把书签全保存到默认书签文件里
C-x r l      bookmark-menu-list          书签清单
(无)      bookmark-insert            插入与给定书签关联着的文件的完整内容
(无)      bookmark-write           把书签全保存到一个指定的文件里
(无)      bookmark-load            从指定文件里加载书签

 


书签清单编辑命令速查表
命令    动作
*********************************************************
d     加上待删除标记
r     对书签重命名
s     保存清单里的全部书签
f     显示光标位置上的书签
m     加上待显示标记
v     显示由m标记的书签
t     切换书签关联文件的路径显示/不显示状态
w     显示书签关联文件的存放位置
x     删除加有待删除标记的书签
u或DEL  去掉书签上的标记
q     退出书签清单

 


窗格命令速查表
键盘操作  命令名词              动作
*********************************************************
C-x 5 o  other-frame            移动到其他窗格
C-x 5 0  delete-frame            删除当前窗格
C-x 5 2  mark-frame            在当前编辑缓冲区上创建一个新窗格
C-x 5 r  find-file-read-only-other-frame   创建新窗格并查找文件,且只读
C-x 5 f  find-file-other-frame        在一个新窗格里查找文件
C-x 5 b  switch-to-buffer-other-frame   创建新窗格且在其中显示另外一个缓冲区


ESC !     执行一条命令

 


shell模式命令速查表
键盘操作  命令名词                动作
************************************************************
(无)    shell                  进入shell模式
C-c C-c  comint-interrupt-subjob        中断当前作业
C-d    comint-delchar-or-maybe-eof      删除或送出EOF字符(在缓冲区末时)
C-c C-d  comint-send-eof            送出EOF字符
C-c C-u  comint-kill-input            删除当前行
ESC p   comint-previous-input         检索此前的上一个命令
ESC n   comint-next-input           检索此后的下一个命令
RETURN  comint-send-input           送出输入在当前行上的命令
TAB    comint-dynamic-complete       自动补足当前命令
C-c C-o  comint-kill-output           删除最后一个命令的输出
C-c C-r  comint-show-output          把输出内容的第一行移到窗口顶部
C-c C-e  comint-show-maximum-output     把输出内容的最后一行移到窗口底部
C-c C-p  comint-previous-prompt        移动到前一条命令
C-c C-n  comint-next-prompt          移动到后一条命令
ESC |   shell-command-on-region        对选中的文本执行shell命令处理选择文本


C-u ESC !        将命令执行结果直接放到当前编辑缓冲区而非"*Shell Command Output*"

 


Dired命令速查表
键盘操作 命令名词               动作
**********************************************************
C-x d  dired                 启动Dired
C    dired-do-copy             复制文件
d    dired-flag-file-deletion         给文件加上待删除标记
D    dired-do-delete            以问答方式立即删除某个文件
e    dired-find-file            编辑文件
f    dired-advertised-find-file       查找文件
g    revert-buffer             从磁盘上重新读入目录即刷新目录
G    dired-do-chgrp           改变文件的组权限
k    dired-do-kill-lines           从画面删除光标所在行而不是删除文件
m    dired-mark             给文件加上*标记
n    dired-next-line           移动到下一行
o    dired-find-file-other-window     打开文件到一个新窗口光标在新窗口
C-o   dired-display-file           打开文件到一个新窗口光标不移动过去
P    dired-do-print             打印文件
q    dired-quit               退出Dired
Q    dired-do-query-replace       在加有待操作标记的文件里对字符串进行查找替换
R    dired-do-rename           重新命名文件
u    dired-unmark             去掉待操作标记
v    dired-view-file             查看文件内容
x    dired-do-flagged-delete        删除加有待删除标记D的文件
Z    dired-do-compress           压缩或解压
ESC DEL dired-unmark-all-files         去得所有标记
~    dired-flag-backup-files         给备份文件加上待删除标记,用C-u ~去掉这些标记
*    dired-mark-executables         给可执行文件加上*标记,用C-u *去得这些标记
#    dired-flag-auto-save-files       给自动保存文件加上待删除标记,C-u #去掉
.    dired-clean-directory           给带编号的备份文件加上待删除标记
/    dired-mark-directories         给目录加上*标记,C-u /去掉这些标记
=    dired-diff                 把这个文件与另一个文件进行比较
ESC =  dired-backup-diff            把这个文件与它的备份文件进行比较
!    dired-do-shell-command       以问答方式执行shell命令,对象为加有待操作文件
ESC }  dired-next-marked-file         移动到加有*或D标记的下一个文件
ESC {  dired-prev-marked-file         移动到加有*或D标记的上一个文件
%d    dired-flag-files-regexp         给匹配这个正则表达式的文件加上待删除标记
%m   dired-mark-files-regexp         给匹配这个正则表达式的文件加上待操作标记
+    dired-create-directory         创建一个目录
>    dired-next-dirline           移动到下一个目录
<    dired-prev-dirline           移动到上一个目录
s     dired-sort-toggle-or-edit       按日期或文件名重新排序

 

C-u C-x C-d           给出一个详细的目录文件清单
C-x C-d             给出一个简单的目录文件清单

 


与宏有关的Emacs命令
键盘操作    命令名词                 动作
************************************************************************
C-x (     start-kbd-macro             开始录制一个宏
C-x )      end-kbd-macro               结束宏的录制工作
C-x e     call-last-kbd-macro             执行最后一次录制的宏
ESC n C-x e
C-u C-x (   universal-argument;start-kbd-macro   执行最后一次录制的宏后追加新动作
(无)      name-last-kbd-macro           给刚录制的宏取一个名字
(无)       insert-last-keyboard-macro       把起了名字的宏插入到一个文件里
(无)      load-file                 加载内容为宏命令定义的文件
(无)      宏名                   执行保存起来的某个键盘命令
C-x q     kbd-macro-query             在宏定义里插入一个查询
C-u C-x q   (无)                   在宏定义里插入一个递归编辑
ESC C-c    exit-recursive-edit             退出递归编辑

 


基本缩进命令速查表
键盘操作  命令名称          动作
**********************************************************************
ESC C-\  indent-region        对光标和文本块标记之间的每一行进行缩进
ESC m   back-to-indentation      把光标移到当前行的第一个非空白字符上
ESC ^   delete-indentation      把当前行合并到上一行去
ESC ;    indent-for-comment      缩进后添加注释
C-x ;   set-comment-column    按照制定comment-column值缩进注释
ESC j    indent-new-comment-line   在下一行继续写完注释
(无)    comment-region      将选中区域整个设置为注释
(无)    kill-comment        去除当前行注释

 


C模式高级移动命令速查表
键盘操作   命令名称               动作
***********************************************************************
ESC a    c-beginning-of-statement     移动到当前语句的开头
ESC e    c-end-of-statement         移动到当前语句的末尾
ESC q     c-fill-paragraph         如果光标在注释文本中间,则进行段落重排
ESC C-a   begining-of-defun          移动到光标所在函数的开头
ESC C-e   end-of-defun           移动到光标所在函数的末尾
ESC C-h   c-mark-function           把光标放到函数开头,标记整个函数
C-c C-q   c-indent-defun           按缩进样式对整个函数进行缩进
C-c C-u   c-up-conditional           移动到当前预处理器条件的开始位置
C-c C-p   c-backward-conditional       移动到上一个预处理器条件
C-c C-n   c-forward-conditional        移动到下一个预处理器条件
C-c C-a   c-toggle-auto-state         启用/禁用auto-newline模式
C-c :                       输入::域作用域操作符
(无)     c-toggle-hungry-state       启用/禁用hungry-delete-key模式
(无)     c-forward-into-nomenclature    将"ThisVariableName"看错3个单词,向前
(无)     c-backward-into-nomenclature   同时,向后一个单词


原文地址:https://www.cnblogs.com/wnarutou/p/2414335.html