标签: 教程 窗口 正则表达式 单词 搜索 使用 缓冲区 Emacs
Emacs入门:使用全教程
启动 Emacs
要进入 Emacs,只需输入其名称:
$ emacs
:- :- C-z
挂起 Emacs C-x
C-c
永久退出 Emacs
全局描述
:- :- C-<key>
表示按住控件,然后按 <key>
M-<key>
表示按 Esc
一次,然后按 <key>
移动
案例变更
:- :- 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
标记整个缓冲区
杀死和删除
杀死
:- :- 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 中查找指定的函数或变量
在节点内移动
在节点之间移动
:- :- 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
不在断字
正则表达式(条目)
正则表达式(冲突)
增量搜索
:- :- 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 库
简单的定制
在 Emacs Lisp 中进行全局键绑定:
(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切换即时拼写检查
编写命令
语法
(defun command-name (args)
"documentation" (interactive "template")
body)
示例
(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))))
标签: 教程 ,
窗口 ,
正则表达式 ,
单词 ,
搜索 ,
使用 ,
缓冲区 ,
Emacs
From: https://blog.csdn.net/Young_Pro/article/details/141018757