按键简称
C = Control
M = Meta = Alt | Esc
S = Shift
Del = Backspace
RET = Enter
文件
打开文件 | C-x C-f |
保存文件 | C-x C-s |
保存所有文件 | C-x s |
插入其他文件到当前缓冲区 | C-x i |
在当前缓冲区打开另一个文件 | C-x C-v |
另存为文件 | C-x C-w |
移动
移动的单位 | 向后 | 向前 |
字符 | C-b | C-f |
单词 | M-b | M-f |
行 | C-p | C-n |
当前行开头或结尾 | C-a | C-e |
句 | M-a | M-e |
段 | M-{ | M-} |
页 | C-x [ | C-x ] |
表达式 | C-M-b | C-M-f |
函数 | C-M-a | C-M-e |
缓冲区开头或结尾 | M-< | M-> |
垂直滚动屏幕 | C-v | M-v |
水平滚动屏幕 | C-x < | C-x > |
滚动当前行到屏幕中央 | C-u | C-l |
指定行移动 | M-g M-g |
删除
删除的单位 | 向后 | 向前 |
字符 | DEL | C-d |
单词 | M-DEL | M-d |
行 | M-0 C-k | C-k |
句 | C-x DEL | M-k |
表达式 | M-- C-M-k | C-M-k |
删除当前行 | C-S-DEL |
|
删除区域 | C-w |
|
复制区域到删除环 | M-w |
|
删除到字符 | M-z char |
|
从删除环中拉回内容 | C-y |
|
从删除环中拉回更早期的内容 | M-y |
|
查询替换
交互替换 | M-% |
使用正则表达式 | M-x query-replace-regexp |
在查询替换模式下: |
|
替换当前项并跳转到下一项 | SPC |
替换当前项不跳转 | , |
不替换当前项并跳转到下一项 | DEL |
替换全部剩下的查询结果 | ! |
回到上一个匹配结果 | ^ |
退出查询替换 | RET |
进入递归编辑(C-M-c退出) | C-r |
获取帮助
打开快速指南 | C-h t |
获取按键帮助 | C-h k |
获取函数帮助 | C-h f |
打开Emacs帮助手册 | C-h r |
错误恢复
放弃当前命令或终止正在执行的操作 | C-g |
恢复因系统崩溃而丢失的文件 | M-x recover-file |
撤销上一次操作 | C-x u或C-_ |
还原缓冲区的内容 | M-x revert-buffer |
刷新屏幕 | C-l |
标记
设置标记 | C-@ |
在当前光标位置和标记处跳转 | C-x C-x |
设置单词标记 | M-@ |
标记段 | M-h |
标记页 | C-x C-p |
标记表达式 | C-M-@ |
标记函数 | C-M-h |
标记整个缓冲区 | C-x h |
多窗格
Emacs里一个框(Frame)是值窗口系统中的一个窗口,一个窗格(Window)则是指显示在一个Frame
窗格 | 框 | |
删除所有其他窗格 | C-x 1 |
|
垂直分割 | C-x 2 | C-x 5 2 |
删除当前窗格 | C-x 0 | C-x 5 0 |
水平分割 | C-x 3 |
|
滚动其他窗格 | C-M-v |
|
切换到另一个窗格 | C-x o | C-x 5 o |
在其他窗格切换缓冲区 | C-x 4 b | C-x 5 b |
在其他窗格显示缓冲区 | C-x 4 C-o | C-x 5 C-o |
在其他窗格打开文件 | C-x 4 f | C-x 5 f |
在其他窗格以只读方式打开文件 | C-x 4 r | C-x 5 r |
在其他窗格打开目录 | C-x 4 d | C-x 5 d |
在其他窗格查找标签 | C-x 4 . | C-x 5 . |
窗格高度增加 | C-x ^ |
|
窗格宽度减少 | C-x { |
|
窗格宽度增加 | C-x } |
|
格式化
缩进当前行 | TAB |
缩进区域 | C-M-/ |
缩进表达式 | C-M-q |
增加缩进 | C-x TAB |
在当前位置后增加新行 | C-o |
当前位置到行尾的内容下移 | C-M-o |
删除当前位置附近的空行 | C-x C-o |
将当前行连接到上一行 | M-^ |
删除光标附近的空白 | M-/ |
大小写转换
单词转换为大写 | M-u |
单词转换为小写 | M-l |
单词转换为首字母大写 | M-c |
区域转换为大写 | C-x C-u |
区域转换为小写 | C-x C-l |
交换
交换字符 | C-t |
交换单词 | M-t |
交换行 | C-x C-t |
交换表达式 | C-M-t |
拼写检查
见车当前单词拼写 | M-$ |
检查区域内所有单词 | M-x ispell-region |
检查整个缓冲区 | M-x ispell-buffer |
Shell命令
执行一个外部命令 | M-! |
在当前区域运行一shell命令 | M-| |
使用一个外部命令处理当前区域 | C-u M-| |
启动一个shell | M-x shell |
键盘宏
开始记录键盘宏 | C-x ( |
结束记录键盘宏 | C-x ) |
执行最后一个宏 | C-x e |
追加内容到最后一个键盘宏 | C-u C-x |
给最后一个键盘宏命名 | M-x name-last-kbd-macro |
插入键盘宏的Lisp定义到当前缓冲区 | M-x insert-kbd-macro |