导航
光标移动
C-f / C-b前进 / 后退一个字符
M-f / M-b前进 / 后退一个单词
C-n / C-p下一行 / 上一行
C-a / C-e行首 / 行尾
M-a / M-e句首 / 句尾
C-v / M-v向下 / 向上翻页
M-< / M->缓冲区开头 / 结尾
M-g g跳转到指定行号
屏幕定位
C-l重新居中(循环:顶/中/底)
C-M-l启发式重新定位窗口
编辑
Kill 与 Yank(剪切与粘贴)
C-kKill 到行尾
C-wKill 区域(剪切)
M-w复制区域
C-yYank(粘贴)
M-yYank 后循环 kill ring
C-d向前删除字符
M-d向前 Kill 单词
M-DEL向后 Kill 单词
撤销与转置
C-/ or C-_撤销
C-g C-/重做(撤销撤销)
C-t转置字符
M-t转置单词
C-x C-t转置行
选区
C-SPC设置标记(开始选区)
C-x h选中整个缓冲区
M-h选中段落
C-x C-x交换 point 和 mark
缓冲区与窗口
缓冲区
C-x b切换到缓冲区
C-x C-b列出所有缓冲区
C-x kKill(关闭)缓冲区
C-x LEFT / RIGHT上一个 / 下一个缓冲区
窗口
C-x 2水平分割窗口
C-x 3垂直分割窗口
C-x 0关闭当前窗口
C-x 1关闭其他所有窗口
C-x o切换到其他窗口
C-x ^垂直扩大窗口
C-x {水平缩小窗口
Frame
C-x 5 2创建新 frame
C-x 5 0删除当前 frame
C-x 5 o切换到其他 frame
搜索与替换
增量搜索
C-s向前搜索(增量)
C-r向后搜索(增量)
C-s C-s重复上次向前搜索
C-M-s正则向前搜索
C-M-r正则向后搜索
RET在当前位置退出搜索
C-g取消搜索,回到起点
替换
M-%查询替换
C-M-%正则查询替换
y替换当前匹配
n跳过当前匹配
!替换剩余所有
q退出替换
文件
文件操作
C-x C-f查找(打开)文件
C-x C-s保存当前缓冲区
C-x C-w另存为(写入新文件)
C-x s保存所有已修改缓冲区
C-x C-r以只读方式打开文件
C-x i在 point 处插入文件内容
Dired(目录编辑器)
C-x d在 Dired 中打开目录
d / x标记待删除 / 执行删除
R重命名 / 移动文件
C复制文件
+创建目录
g刷新列表
模式
主模式
M-x fundamental-mode纯文本编辑
M-x text-mode带填充和拼写的文本
M-x prog-mode编程模式基础
M-x python-modePython 编辑与缩进
M-x shell-mode缓冲区中的交互式 shell
常用次要模式
M-x display-line-numbers-mode切换行号显示
M-x auto-fill-mode在填充列处自动换行
M-x flyspell-mode实时拼写检查
M-x column-number-mode在模式行显示列号
M-x whitespace-mode可视化空白字符
M-x electric-pair-mode自动闭合括号和引号
Org 模式基础
结构
* / ** / ***1 / 2 / 3 级标题
TAB循环切换标题可见性
S-TAB循环切换全局可见性
M-RET在同级插入标题
M-LEFT / M-RIGHT提升 / 降级标题
M-UP / M-DOWN上移 / 下移子树
TODO 与复选框
C-c C-t循环切换 TODO 状态
C-c C-d设置截止日期
C-c C-s安排日程
C-c C-c切换复选框 [ ] / [X]
C-c a打开议程视图
链接与导出
C-c C-l插入 / 编辑链接
C-c C-o打开 point 处的链接
C-c C-e导出调度器(HTML、PDF 等)
包管理
package.el
M-x list-packages浏览可用包
i / d / x标记安装 / 删除 / 执行
U标记所有可升级包
M-x package-refresh-contents刷新包列表
use-package(init.el)
(use-package magit :ensure t :bind ("C-x g" . magit-status)) (use-package company :ensure t :hook (prog-mode . company-mode))
配置
关键配置文件
~/.emacs.d/init.el主配置文件
~/.emacs.d/early-init.el早期初始化(GUI 前,Emacs 27+)
~/.emacs.d/custom.elCustomize 写入的配置
常用配置
(setq inhibit-startup-screen t) (tool-bar-mode -1) (set-face-attribute 'default nil :height 120) (global-display-line-numbers-mode 1) (setq make-backup-files nil)
帮助系统
C-h k描述快捷键绑定
C-h f描述函数
C-h v描述变量
C-h m描述当前模式
C-h t打开 Emacs 教程
C-h i打开 Info 文档
常用模式
矩形编辑
C-x SPC开始矩形标记模式
C-x r kKill 矩形
C-x r yYank 矩形
C-x r t用字符串替换矩形
C-x r o插入空白矩形
C-x (开始录制宏
C-x )停止录制宏
C-x e执行上次宏
C-u 10 C-x e执行宏 10 次
M-x name-last-kbd-macro命名宏以便复用
Shell 与执行
M-x shell在缓冲区中打开 shell
M-x eshellEmacs Lisp shell
M-!运行 shell 命令
M-x eval-buffer将整个缓冲区作为 Elisp 求值
C-x C-e对 point 前的 Elisp 表达式求值