Emacs 于 1975 年诞生在 MIT 人工智能实验室,由 Richard Stallman 开发。
- 底层:用 C 语言完成与系统交互和展示部分,并实现了一个 Lisp 解析器
- 上层:通过 Emacs Lisp 不断扩展自身,其实 Emacs 中绝大多数的操作都是在调用 Emacs Lisp
$ emacs -nw # 以no window的方式运行
(defun print-elements-of-list (list)
"Print each element of LIST on a line of its own."
(while list
(print (car list))
(setq list (cdr list))))
(print-elements-of-list 3badguys-emacs/packages)
符号 | 键 |
---|---|
C | Ctrl |
M | Alt |
S | Shift |
快捷键 | 描述 |
---|---|
C-x C-f | 打开文件 |
C-x C c | 关闭emacs |
C-x C-s | 保存文件 |
C-x C-b | 查看buffer列表 |
C-x C-r | 查看最近打开文件 |
C-x d | 调用dired来打开文件 |
C-j | 在Minibuffer中相当于回车作用 |
C-x C-q | 开启或关闭只读模式 |
快捷键 | 描述 |
---|---|
M-x | 执行命令 |
M-x eval-region | 执行选中区域的内容 |
M-x eval-buffer | 执行buffer内的内容 |
C-g | 退出命令执行 |
快捷键 | 描述 |
---|---|
C-n | 跳转到下一行 |
C-p | 跳转到上一行 |
C-f | 向前跳转一个字符 |
C-b | 向后跳转一个字符 |
M-f | 向前跳转一句 |
M-b | 向后跳转一句 |
C-d | 删除当前字符 |
C-a | 跳转到行首 |
C-e | 跳转到行末 |
M-< | 跳转到文档头部 |
M-> | 跳转到文档尾部 |
C-v | 向下翻页 |
M-v | 向上翻页 |
M-g M-g | 调到指定行 |
快捷键 | 描述 |
---|---|
C-x r k | 剪切矩形块 |
C-x r y | 粘贴矩形块 |
C-x r o | 插入矩形块 |
C-x r c | 清除矩形块 |
C-x r t | 在选定区域所有列前插入字符 |
PS:以上快捷键均在C-SPE选中区域后操作
快捷键 | 描述 |
---|---|
C-SPE | 选中 |
C-w | 剪切 |
M-w | 复制 |
C-y | 粘贴 |
快捷键 | 描述 |
---|---|
C-/ | 撤销(推荐用这个) |
C-_ | 撤销 |
C-x u | 撤销 |
快捷键 | 描述 |
---|---|
M-x list-matching-lines | 查找当前文件内容 |
M-x grep rgrep lgrep grep-find | 调用grep查找文件内容 |
M-x project-find-file | 项目范围内查找文件 |
C-s | 通过isearch查找内容 |
C-r | 通过isearch反向查找内容 |
M-x bookmark-set | 添加当前文件到书签 |
M-x list-bookmark | 查看书签列表 |
快捷键 | 描述 |
---|---|
<f7> | 光标处自动高亮,不固定 |
<f8> | 光标处固定高亮 |
<f9> | 删除所有固定的高亮 |
M-n | 跳转到下一处高亮 |
M-p | 跳转到上一处高亮 |
快捷键 | 操作 |
---|---|
C-x 1 | 只保留当前窗口 |
C-x 2 | 水平切分窗口 |
C-x 3 | 竖直切分窗口 |
C-x o | 按顺序跳转到其他窗口 |
快捷键 | 描述 |
---|---|
M-^ | 将当前行内容合并到上一行 |
快捷键 | 描述 |
---|---|
C-h b | 查看快捷键绑定列表 |
C-h f | 对函数的描述 |
C-h v | 对变量的描述 |
C-h k | 对快捷键的描述 |
M-x find-function | 跳转到函数定义 |
M-x find-variable | 跳转到变量定义 |
M-x find-function-on-key | 跳转到快捷键定义 |
快捷键 | 描述 |
---|---|
Enter | 打开文件或文件夹 |
q | 关闭buffer |
g | 刷新buffer |
^ | 返回上一层目录 |
> | 下一个文件夹 |
< | 上一个文件夹 |
C | 拷贝文件 |
R | 重命名文件或移动文件 |
D | 立即删除文件或文件夹 |
d | 加上待删除标志D |
m | 标志文件 |
%m | 使用正则表达式标志 |
u | 取消标志 |
U | 取消所有标志 |
x | C/D/R标志命令的执行 |
s | 按时间排序 |
v | 只读模式 |
f | 文本编辑模式 |
+ | 新增文件夹 |
Z | 压缩和解压缩 |
S | 链接 |
= | 比较文件diff |
快捷键 | 描述 |
---|---|
Tab | 光标所在标题展开或关闭 |
S-Tab | 展开所有标题或关闭(感觉跟系统的快捷键冲突了) |
C-c C-n/p | 上下标题跳转 |
C-c C-f/b | 上下标题跳转,仅同一标题 |
C-c C-u | 跳转到上一级标题 |
C-c C-j | 跳转到下一级标题 |
符号 | 描述 |
---|---|
粗体 | 粗体 |
斜体 Italics | 斜体(中文显示不斜,是因为没有斜体的字符) |
删除线 | |
下划线 | 下划线 |
- treeroot
- branch2
- branch1
- [-] 任务1 [33%]
- [ ] 子任务1
- [X] 子任务2
- [ ] 子任务3
- [ ] 任务2
快捷键 | 描述 |
---|---|
C-c <竖线> | 创建表格 |
Tab | 移动到下一个区域,必要时(行尾)创建一行 |
C-c C-c | 调整表格对齐 |
C-u C-c C-c | 强制为表格进行公式计算 |
M-<left/right> | 将当前行向左/右移 |
M-<up/down> | 将当前行向上/下移 |
M-S-<left/right> | 删除/插入列 |
M-S-<up/down> | 删除/插入行 |
C-c - | 插入水平分割线 |
C-c Ret | 插入水平分割线并调到下一行 |
输入”<竖线>”然后Tab对齐 | 产生表格 |
输入”<竖线>-“然后Tab对齐 | 插入水平分割线 |
快捷键 | 描述 |
---|---|
C-c C-t | 变换TODO状态 |
C-c / t | 以树的形式展示所有的TODO |
M-s-RET | 插入同级TODO标签 |
C-c , | 设置TODO优先级[#A-C] |
C-c C-q | 为标题添加标签:tag: |
C-c / m | 显示标签 |
- [-] subsub1 [0/0]
- [ ] subsub2
- [X] subsub3
快捷键 | 描述 |
---|---|
C-c . | 插入时间 |
C-c C-s | 计划时间(SCHEDULED) |
C-c C-d | 截止时间(DEADLINE) |
<2019-02-17 日>
快捷键 | 描述 |
---|---|
“<s” Tab | 嵌入代码,指定语言 |
C-c C-c | 对当前代码块求值,结果显示#RESULTS: |
(+ 1 2 3 4)
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
return 0;
}
快捷键 | 描述 |
---|---|
C-c C-e | 导出 |
快捷键 | 描述 |
---|---|
C-c C-l | 编辑链接 |
C-c C-o | 打开链接 |