本文同步发表于 https://devlife.cn
符号说明
符号 |
描述 |
C- |
按住 Ctrl 键 |
M- |
按住 Meta 键(若无,使用 Alt / Esc 替代) |
DEL |
退格键 |
RET |
回车键 |
SPC |
空格键 |
ESC |
Esc 键 |
TAB |
Tab 键 |
文件与缓冲区
命令 |
描述 |
C-x b |
创建或切换 Buffer |
C-x k |
关闭当前 Buffer |
C-x C-b |
查看 Buffer 列表 |
C-x C-f |
打开文件 |
C-x C-s |
保存文件 |
C-x s |
保存所有文件 |
C-x i |
插入其他文件到当前 Buffer |
C-x C-v |
关闭当前 Buffer 并打开新文件 |
C-x C-w |
另存为文件 |
错误恢复(重要)
注意:撤销也可以撤销,即:Undo + Undo = Redo
命令 |
描述 |
C-g |
停止当前运行/输入的命令 |
C-x u 或 C-_ 或 C-/
|
向后撤销 |
C-g C-/ |
向前撤销 |
M-x recover-file |
从自动存盘文件恢复 |
M-x recover-session |
恢复编辑的多个文件 |
M-x revert-buffer |
撤销上次保存后的所有改动 |
光标移动
命令 |
描述 |
C-f |
前进一个字符 |
C-b |
后退一个字符 |
M-f |
前进一个单词 |
M-b |
后退一个单词 |
C-p |
上一行 |
C-n |
下一行 |
C-a |
行首 |
C-e |
行尾 |
M-a |
句首 |
M-e |
句尾 |
C-v |
上翻一页 |
M-v |
下翻一页 |
M-< |
缓冲区开头 |
M-> |
缓冲区结尾 |
M-{ |
段首 |
M-} |
断尾 |
C-M-b |
表达式开头 |
C-M-f |
表达式结尾 |
C-M-a |
函数开头 |
C-M-a |
函数结尾 |
窗口与框
这里和平时的理解不太一样,一个框(Frame)可以显示多个窗口(Window)。
命令 |
描述 |
C-x o |
切换窗口 |
C-x 0 |
关闭当前窗口 |
C-x 1 |
关闭其他窗口 |
C-x 2 |
水平分隔窗口 |
C-x 3 |
垂直分隔窗口 |
C-x 4 b |
在另一个窗口打开 Buffer |
C-x 4 f |
在另一个窗口打开文件 |
C-x 5 2 |
新建框 |
C-x 5 b |
在另一个框打开 Buffer |
C-x 5 f |
在另一个框打开文件 |
C-x 5 o |
切换框 |
C-x ^ |
增加窗口高度 |
M-x shrink-window |
减少窗口高度 |
C-x } |
增加窗口宽度 |
C-x { |
减少窗口宽度 |
标记
命令 |
描述 |
C-SPC |
设置开始标记 |
C-@ |
设置开始标记(适用于C-SPC 被系统拦截的情况) |
C-x C-x |
交换光标和标记 |
M-@ |
以单词为单位使用移动命令动态标记区域 |
M-h |
标记一段 |
C-x C-p |
标记一页 |
C-M-@ |
标记一个表达式 |
C-M-h |
标记一个函数 |
C-x h |
标记整个缓冲区 |
编辑
命令 |
描述 |
C-w |
移除(kill)标记区域的内容 |
M-w |
复制标记区的内容 |
C-y |
召回(yank)复制/移除的区域/行 |
M-y |
召回更早的内容 (在 kill 缓冲区内循环) |
M-z |
Kill 到下一个指定字符出现的位置 |
C-t |
交换两个字符的位置 |
M-t |
交换两个单词的位置 |
C-x C-t |
交换两行的位置 |
M-u |
使从光标位置到单词结尾处的字母变成大写 |
M-l |
使从光标位置到单词结尾处的字母变成小写 |
M-c |
使从光标位置开始的单词的首字母变为大写 |
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 |
正向搜索 |
C-r |
反向搜索 |
C-M-s |
使用正则表达式正向搜索 |
C-M-r |
使用正则表达式反向搜索 |
RET |
退出搜索并停留在当前搜索到的位置 |
M-% |
交互替换 |
M-x query-replace-regexp |
使用正则表达式 |
SPC或y |
替换当前匹配 |
DEL或n |
不要替换当前匹配 |
. |
仅仅替换当前匹配并退出(替换) |
, |
替换并暂停(按 Space 或 y 继续) |
! |
替换以下所有匹配 |
^ |
回到上一个匹配位置 |
RET或q |
退出替换 |
获取帮助
命令 |
描述 |
C-h t |
打开快速指南 |
C-h k |
获取按键帮助 |
C-h f |
获取函数帮助 |
C-h r |
打开 Emacs 帮助手册 |
C-h i |
打开 info 阅读器 |
C-h C-f |
显示 Emacs FAQ |
C-h p |
显示本机 Elisp 包的信息 |