Emacs 是可扩展的、可定制的、自记录的实时显示文本编辑器。此参考适用于 Emacs 27+
入门 启动 Emacs 要进入 Emacs,只需输入其名称:
:-
:-
C-z
挂起 Emacs
C-x
C-c
永久退出 Emacs
全局描述
:-
:-
C-<key>
表示按住控件,然后按 <key>
M-<key>
表示按 Esc
一次,然后按 <key>
注意:本备忘单遵循上述规则
移动
返回
向前
要移动的实体
C-b
C-f
Haracter
M-b
M-f
单词
C-p
C-n
线
C-a
C-e
行开头(或结尾)
M-a
M-e
句子
M-{
M-}
段落
C-x
[
C-x
]
页
C-M-b
C-M-f
Sexp
C-M-a
C-M-e
功能
M-<
M->
缓冲区开始(或结束)
案例变更
:-
:-
M-u
大写单词
M-l
小写单词
M-c
大写单词
C-x
C-u
大写区域
C-x
C-l
小写区域
文件
:-
:-
C-x
C-f
将文件读入 Emacs
C-x
C-s
将文件保存回磁盘
C-x
s
保存所有文件
C-x
i
将另一个文件的内容插入此缓冲区
C-x
C-v
将此文件替换为您的文件
C-x
C-w
将缓冲区写入指定文件
C-x
C-q
切换缓冲区的只读状态
错误恢复
:-
:-
C-g
中止部分键入或执行的命令
M-x
recover-session
恢复因系统崩溃而丢失的文件
C-x
u
C-_
C-/
撤消不需要的更改
M-x
revert-buffer
将缓冲区恢复到其原始内容
C-l
重绘垃圾屏幕
Transposing
:-
:-
C-t
转置字符
M-t
转置词
C-x
C-t
转置线
C-M-t
转置性别
:-
:-
C-v
滚动到下一个屏幕
M-v
滚动到上一个屏幕
C-x
<
向左滚动
C-x
>
向右滚动
C-l
将当前行滚动到 center, top, bottom
跳转
:-
:-
M-g
g
转到行
M-g
c
转到字符
M-m
返回缩进
标记
:-
:-
C-@
C-SPC
在标记在这里
C-x
C-x
交换点和标记
M-@
设置标记 arg 单词
M-h
标记段落
C-x
C-p
标记页面
C-M-@
标记性
C-M-h
标记功能
C-x
h
标记整个缓冲区
杀死和删除
向后
向前
要杀死的实体
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-W
杀死区域 C-w
M-w
复制区域杀死环
M-z
char
杀死下一次出现的字符
C-y
拉回最后一个被杀的东西
M-y
用之前的杀戮替换最后的猛拉
获得帮助
:-
:-
C-x
1
删除帮助窗口
C-M-v
滚动帮助窗口
C-h
a
Apropos:显示匹配字符串的命令
C-h
k
描述一个键运行的功能
C-h
f
描述一个函数
C-h
m
获取特定于模式的信息
帮助系统很简单。键入 C-h
(或 F1
)并按照说明进行操作。如果您是第一次使用,请键入 C-h
t
以获得教程
多个窗口 当显示两个命令时,第二个命令是用于框架而不是窗口的类似命令
:-
:-
:-
C-x
5
1
C-x
1
删除所有其他窗口
C-x
5
2
C-x
2
拆分窗口,上方和下方
C-x
5
0
C-x
0
删除此窗口
:-
:-
:-
C-x
3
拆分窗口,并排
C-M-v
滚动其他窗口
:-
:-
:-
C-x
5
o
C-x
o
将光标切换到另一个窗口
C-x
5
b
C-x
4
b
在其他窗口中选择缓冲区
C-x
5
C-o
C-x
4
C-o
在其他窗口中显示缓冲区
C-x
5
f
C-x
4
f
在其他窗口中查找文件
C-x
5
r
C-x
4
r
在其他窗口中以只读方式查找文件
C-x
5
d
C-x
4
d
在其他窗口中运行 Dired
C-x
5
.
C-x
4
.
在其他窗口中查找标签
:-
:-
:-
C-x
^
让窗户变高
C-x
{
缩小窗口
C-x
}
让窗口变宽
格式化
:-
:-
TAB
缩进当前行(取决于模式)
C-M-\
缩进区域(取决于模式)
C-M-q
缩进 sexp(取决于模式)
C-x
TAB
缩进区域刚性 arg 列
M-;
缩进评论
C-o
在点后插入换行符
C-M-o
将其余行垂直向下移动
C-x
C-o
删除点周围的空行
M-^
与上一个加入行(带 arg,下一个)
M-\
删除点周围的所有空白
M-SPC
在点上正好放一个空格
M-q
填写段落
C-x
f
将填充列设置为 arg
C-x
.
设置每行开头的前缀
M-o
设置面
信息
:-
:-
C-h
i
输入信息文档阅读器
C-h
S
在 Info 中查找指定的函数或变量
在节点内移动
:-
:-
SPC
向前滚动
DEL
反向滚动
b
节点的开始
在节点之间移动
:-
:-
n
下一个节点
p
上一个节点
u
提升
m
按名称选择菜单项
n
按编号 (1–9) 选择第 n 个菜单项
f
遵循交叉引用(用 l 返回)
l
返回您看到的最后一个节点
d
返回目录节点
t
转到信息文件的顶部节点
g
按名称转到任何节点
其他
:-
:-
h
运行信息教程
i
在索引中查找主题
s
搜索节点以查找正则表达式
q
退出信息
小缓冲区 以下键在 minibuffer
中定义
:-
:-
TAB
尽可能完成
SPC
最多完成一个单词
RET
完成并执行
?
显示可能的完成
M-p
获取先前的 minibuffer
输入
M-n
获取稍后的 minibuffer
输入或默认值
M-r
正则表达式向后搜索历史
M-s
正则表达式向前搜索历史
C-g
中止命令
键入 C-x
ESC
ESC
以编辑并重复使用 minibuffer
的最后一个命令。键入 F10
以激活文本终端上的菜单栏项
标签
:-
:-
M-.
查找标签(定义)
C-u
M-.
查找标签的下一个出现
M-x
visit-tags-table
指定一个新的标签文件
M-x
tags-search
正则表达式搜索标签表中的所有文件
M-x
tags-query-replace
对所有文件运行查询替换
M-,
继续最后一个标签搜索或查询替换
缓冲器
:-
:-
C-x
b
选择另一个缓冲区
C-x
C-b
列出所有缓冲区
C-x
k
杀死一个缓冲区
矩形
:-
:-
C-x
r
r
复制矩形进行注册
C-x
r
k
杀死矩形
C-x
r
y
拉长矩形
C-x
r
o
打开矩形,向右移动文本
C-x
r
c
空白矩形
C-x
r
t
用字符串为每一行添加前缀
键盘宏
:-
:-
C-x
(
开始定义键盘宏
C-x
)
结束键盘宏定义
C-x
e
执行最后定义的键盘宏
C-u
C-x
(
附加到最后一个键盘宏
M-x
name-last-kbd-macro
命名最后一个键盘宏
M-x
insert-kbd-macro
在缓冲区中插入 Lisp 定义
Emacs 搜索 正则表达式(常用)
:-
:-
.
(dot)
除换行符外的任何单个字符
*
零次或多次重复
+
一次或多次重复
?
零次或一次重复
\
引用特殊字符
\c
引用正则表达式特殊字符 c
|
替代(“或”)
\(...\)
分组
\(:?...\)
害羞的分组
\(:NUM...\)
显式编号分组
\n
与第 n 组相同的文本
\b
在断字时
\B
不在断字
正则表达式(条目)
开始
结束
实体
^
$
行
\<
\>
单词
\_<
\_>
象征
\‘
\’
缓冲
正则表达式(冲突)
这些
其他
class
[...]
[^...]
显式集
\w
\W
单词语法字符
\sc
\Sc
具有语法 c 的字符
\cc
\Cc
类别 c 的字符
增量搜索
:-
:-
C-s
向前搜索
C-r
向后搜索
C-M-s
正则表达式搜索
C-M-r
反向正则表达式搜索
M-p
选择上一个搜索字符串
M-n
选择下一个稍后搜索字符串
RET
退出增量搜索
DEL
最后一个字符的撤消效果
C-g
中止当前搜索
再次使用 C-s
或 C-r
在任一方向重复搜索。 如果 Emacs 仍在搜索,C-g
只取消不匹配的部分
查询替换
:-
:-
M-%
以交互方式替换文本字符串
M-x
regexp
使用正则表达式
SPC
/ y
替换这个,继续下一个
,
换这个,别动
DEL
/ n
不更换就跳到下一个
!
替换所有剩余的匹配项
^
回到上一场比赛
RET
退出查询替换
C-r
进入递归编辑(C-M-c 退出)
杂项 Shell
:-
:-
M-!
执行一个shell命令
M-&
异步执行shell命令
M-
在区域上运行 shell 命令
C-u
M-
通过 shell 命令过滤区域
M-x
shell
在window shell中启动一个shell
国际字符集
:-
:-
C-x
RET
l
指定主要语言
M-x
list-input-methods
显示所有输入法
C-\
启用或禁用输入法
C-x
RET
c
为下一个命令设置编码系统
M-x
list-coding-systems
显示所有编码系统
M-x
prefer-coding-system
选择首选的编码系统
寄存器
:-
:-
C-x
r
s
在寄存器中保存区域
C-x
r
i
将寄存器内容插入缓冲区
C-x
r
SPC
将点的值保存在寄存器中
C-x
r
j
跳转到保存在寄存器中的点
各种各样的
:-
:-
C-u
num
数值参数
M--
否定论点
C-q
char
带引号的插页
处理 Emacs Lisp 的命令
:-
:-
C-x
C-e
评估点前的性
C-M-x
评估电流定义
M-x
eval-region
评估区
M-:
读取和评估 minibuffer
M-x
load-library
从加载路径加载 Lisp 库
简单的定制
:-
:-
M-x
customize
自定义变量和面
在 Emacs Lisp 中进行全局键绑定:
1 2 (global-set-key (kbd "C-c g") ’search-forward) (global-set-key (kbd "M-#") ’query-replace-regexp)
缩写
:-
:-
C-x
a
g
添加全局缩写
C-x
a
l
添加模式本地缩写
C-x
a
i
g
为这个缩写添加全局扩展
C-x
a
i
l
为这个缩写添加模式本地扩展
C-x
a
e
显式扩展缩写
M-/
动态扩展前一个单词
拼写检查
:-
:-
M-$
检查当前单词的拼写
M-x
ispell-region
检查区域内所有单词的拼写
M-x
ispell-buffer
检查整个缓冲区的拼写
M-x
flyspell-mode
切换即时拼写检查
编写命令 语法 1 2 3 (defun command-name (args) "documentation" (interactive "template") body)
示例 1 2 3 4 5 6 7 (defun this-line-to-top-of-window (line) "Reposition current line to top of window. With prefix argument LINE, put point on LINE." (interactive "P") (recenter (if (null line) 0 (prefix-numeric-value line))))