Emacs 常用基本操作
Emacs 作为 Programmer 熟知的两大 Editor 之一流行了很多年了,据说学习曲线陡峭,一直处于劝退状态。但作为喜欢折腾各种工具的自己来说,内心一直有跃跃欲试的想法,终于最近两个月得闲,开始研究学习上了。通过学习官网Tutorials 熟悉其基本操作 & 配置,同时 Google 了解 Emacs 使用频次最高的一些插件,在使用过程中不断优化配置,打造成自己趁手的工具。目前,我主要有三种使用场景: 1. 文本编辑 2. 代码阅读 3. 写业余代码。以下是我在学习过程中整理的常用基本操作,分享出来一方面是当作学习笔记输出,以便后续遗忘时快速查找,另一方面也希望能带给他人一些帮助。
目前的常用操作有:
- 单文件操作
- 光标移动
- 复制(copy) & 粘贴(paste)
- 插入(insert) & 删除(delete)
- 撤销(undo) & 重做(redo)
- 窗口操作
- 阅读代码常用操作
- 查看帮助文档
在使用 Emacs 时,有几个关键概念:
- Buffer
- Window
- Frame
- Mode
请自行查阅文档了解。
注:
C-h表示按住 Ctrl 键的同时按 h 键;M-x表示按住 Alt/Meta 键的同时按 x 键;S-p f表示按住 Windows 键,再依次按 p f 键。
1. 文件操作
- 启动 Emacs:
emacs或emacs <file to open> - Emacs 内新建/打开文件:
C-x C-f - 文件保存:
C-x C-s - 退出 minibuffer:
C-g - 退出 Emacs:
C-x C-c
2. 光标移动
- 上移:
C-p - 下移:
C-n - 左移:
C-b左移一个字符,M-b左移一个单词 - 右移:
C-f右移一个字符,M-b右移一个单词 - 移至行首:
C-a - 移至行尾:
C-e - 移至句首:
M-a - 移至句尾:
M-e - 移至文件首:
M-< - 移至文件尾:
M-> - 向上滚动(内容下移):
C-v - 向下滚动(内容上移):
M-v - 括号间移动:
C-M-f,C-M-b,C-M-n,C-M-p
3. 复制粘贴
- 复制:
M-w - 剪贴:
C-w - 粘贴:
C-y - 区域选中:
C-SPC - 全选当前缓冲区:
C-x h
4. 插入删除
- 在当前行下一行插入:
C-e C-j/C-e C-m - 删除当前行:
C-S-backspace/C-a C-k
5. 撤销(undo)/重做(redo)
- 撤销:
C-/ - 重做:
C-g C-/
6. 窗口操作
- 切换窗口:
C-x o - 关闭当前窗口:
C-x 0 - 关闭其他所有窗口:
C-x 1 - 垂直切分窗口:
C-x 3 - 水平切分窗口:
C-x 2
7. 程序模式
- 跳转定义:
M-. - 返回定义:
M-, - 查看调用:
M-? - 移至下一个方法:
C-M-e - 移至上一个方法:
C-M-a - 注释/取消注释当前行:
C-x C-; - 多行注释:选中范围后,
M-; - 项目内按文件查找(已安装 projectile & ivy 插件包的前提下):
S-p f。 - 项目内按内容查找:
S-p s r使用 ripgrep 搜索,S-p s s使用 ag 搜索,S-p s g使用 grep 搜索 。 - 错误信息实时显示:
S-l g e(依赖 flymake, lsp-mode, 调用方法为:lsp-treemacs-errors-list)
8. 帮助文档
- 查看帮助文档操作:
C-h ? - 查看互动教程:
C-h t - 查看快捷键对应命令:
C-h k - 查看命令:
C-h w
其他
- 运行命令:
M-x - 运行上一个表达式:
C-x C-e - 多行编辑:
C-x r t(先选中范围) - 设置快捷键:
(global-set-key "\C-x2" 'split-window-quietly)
以上是默认 Emacs 操作,若习惯了 Vim 的操作方式,切换至 Emacs 时可采用 evil 插件。最后在附上我个人的 Emacs 配置: https://github.com/xautjzd/emacs.d