Emacs基本操作
主要定制编辑器主要围绕这些基础操作,所以必须先了解 Emacs
基本的操作使用。基本上把常用的快捷键都列出来了,后续主要是针对这些基础操作的升级改造,自定义一些方便,容易记住的快捷键。
Emacs的快捷键都是绑定在 Ctrl
和 Alt
(或称 Meta
)上的,例如 C-x
就是 Ctrl+x
, M-x
就是 Alt+x
或者 Esc+x
。
文件操作
快捷键 | 说明 |
---|
C-x C-f | 打开文件 |
C-x C-s | 保存文件 |
C-x C-w | 存为新文件 |
C-x C-c | 退出Emacs |
编辑操作
快捷键 | 说明 |
---|
C-f | 前进一个字符 |
C-b | 后退一个字符 |
M-f | 前进一个字 |
M-b | 后退一个字 |
C-a | 移到行首 |
C-e | 移到行尾 |
M-a | 移到句首 |
M-e | 移到句尾 |
C-p | 后退一行 |
C-n | 前进一行 |
C-v | 向下翻页 |
M-v | 向上翻页 |
M-< | 缓冲区头部 |
M-> | 缓冲区尾部 |
C-l | 当前行居中 |
C-d | 删除一个字符 |
M-d | 删除一个字 |
C-k | 删除一行 |
M-k | 删除一句 |
C-w | 删除标记区域 |
C-t | 交换两个字符的位置 |
M-t | 交换两个单词的位置 |
C-y | 粘贴删除的内容 |
C-x | h 标记所有文字 |
M-w | 复制标记区域 |
M-u | 使从光标位置到单词结尾处的字母变成大写 |
M-l | 与M-u 相反使从光标位置到单词结尾处的字母变成小写 |
M-c | 使从光标位置开始的单词的首字母变为大写 |
C-/ | or C-x u 撤消操作 |
C-u | 重复执行后一个命令,输入一个重复的次数 |
C-u n | 重复执行后一个命令n 次 |
C-x u | 撤销前一个命令 |
C-x C-t | 交换两行的位置 |
M-g M-g | 跳到指定行 |
C-S-@ | 开启标记mark |
M-x revert-buffer RETURN | 撤销上次存盘后所有改动 |
M-x recover-file RETURN | 从自动存盘文件恢复 |
M-x recover-session RETURN | 如果你编辑了几个文件, 用这个恢复 |
M-C-\ | 自动缩进光标和标记间的区域 |
M-^ | 将当前行接到上一行末尾处 |
M-; | 添加缩进并格式化的注释 |
C-M-a | 移动光标到函数的开始处 |
C-M-e | 移动光标到函数的结尾处 |
C-c RETURN | 将光标移动到函数的开始处并标记到结尾处 |
C-c C-q | 根据缩进风格缩进整个函数 |
C-c C-a | 切换自动换行功能 |
C-c C-d | 一次性删除光标后的一串空格(greedy delete) |
M-. | (点) 搜索标签 |
M-x tags-search ENTER | 在所有标签里搜索(使用正则表达式) |
M-, | (逗号) 在tags-search 里跳至下一个匹配处 |
M-x tags-query-replace | 在设置过标签的所有文件里替换文本 |
执行SHELL命令
| 快捷键 说明 |
---|
M-x | shell 打开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 显示后一条命令 |
M-! | 执行SHELL命令 (shell-command) |
窗口操作
快捷键 | 说明 |
---|
C-x 0 | 关闭本窗口 |
C-x 1 | 只留下一个窗口 |
C-x 2 | 垂直均分窗口 |
C-x 3 | 水平均分窗口 |
C-x o | 切换到别的窗口 |
C-x s | 保存所有窗口的缓冲 |
C-x b | 选择当前窗口的缓冲区 |
C-M v | 另外一个窗口向下翻页(需要对照时很好用) |
C-M-Shift 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 | 创建新窗格并显示另一个编辑缓冲区 |
缓冲区列表操作
快捷键 | 说明 |
---|
C-x C-b | 打开缓冲区列表 |
C-x k | 关闭缓冲区 |
搜索模式
快捷键 | 说明 |
---|
C-s | 向前搜索 |
C-s | 查找下一个 |
ENTER | (回车键)停止搜索 |
C-r | 反向搜索 |
C-s | C-w 以光标所在位置的字为关键字搜索 |
C-M-s | 向前正则搜索 |
C-M-r | 向后正则搜索 |
C-M-% | 正则交互替换 |
M-x replace-string ENTER search-string ENTER | ENTER(回车键) 替换 |
Directory Editor (dired)
快捷键 | 说明 |
---|
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 | 打开一个独立的目录显示窗口 |
书签命令(Bookmark commands )
快捷键 | 说明 |
---|
C-x r m | 在光标当前位置创建书签 |
C-x r b | 转到书签 |
M-x bookmark-rename | 重命名书签 |
M-x bookmark-delete | 删除书签 |
M-x bookmark-save | 保存书签 |
M-x bookmark-load | 从指定文件导入书签 |
M-x bookmark-write | 将所有书签导出至指定文件 |
C-x r l | 列出书签清单,进入书签列表模式 |
| d 标记等待删除 |
| Del 取消删除标记 |
| x 删除被标记的书签 |
| r 重命名 |
| s 保存列表内所有书签 |
| f 转到当前书签指向的位置 |
| m 标记在多窗口中打开 |
| v 显示被标记的书签(或者光标当前位置的书签) |
| t 切换是否显示路径列表 |
| w 显示当前文件路径 |
| q 退出书签列表 |
宏命令(Macro-commands)
快捷键 | 说明 |
---|
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 | 在宏定义里面插入一个递归编辑 |
C-M-c | 退出递归编辑 |
帮助
快捷键 | 说明 |
---|
C-h t | 入门指南 |
C-h ? | 查看帮助列表 |
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 i | 打开info 阅读器 |
C-h p | 显示本机Elisp 包的信息 |
C-h C-f | 显示emacs FAQ |