目录

Emacs教程--文本操作

基本文本操作

缩写定义: 在次要模式Abbrev下可以定义缩写,具体操作命令如下

1
2
3
C-x a I g
C-x a g j将已经写好单词定义为缩写
M-x kill-all-abbrevs  删除所有定义的缩写

缩进

键盘输入函数描述
C-x C-i、C-x Tabindent-rigidly这一命令对区域中的(或光标所在的)行进行缩进。
fill-region这一命令填充区域里的所有段落。
M-qfill-paragraph这一命令填充光标所在的单个段落。
M-\delete-horizontal-space这一命令删除光标左右的任何水平间距。
C-oopen-line这一命令以垂直间距在光标下方打开一个新行,而不移动光标。
C-ttranspose-chars这一命令调换光标左右的单个字符。
M-ttranspose-words这一命令调换光标左右的单个单词。
C-x C-ttranspose-lines这一命令调换光标所在的行与光标前面的行。
M-^delete-indentation这一命令将光标所在的行和前面的行连接起来。以 C-1 作为开始,以连接光标所在的行和下一 行。
M-uuppercase-word这一命令将光标处到其所在词的词尾之间的文本转换为大写字母。
M-c这一命令将光标处单词首字母改为大写
M-ldowncase-word这一命令将光标处其所在词的词尾之间的文本转换为小写字母。
C-x C-ldowncase-region这一命令将区域中的内容转换为小写字母。
C-x C-uupcase-region这一命令将区域中的内容转换为大写字母。

搜索和替换

键盘输入函数描述
C-s [字符串] [C-w] [C-y]isearch-forward前向增量地在整个缓冲区中搜索字符串(在缺省情况下,将搜索您上一次给出的搜索字符串,如果存在),C-w 使用从光标处到光标所在单词的词尾之间的文本,以及 C-y 使用从光标处到光标所在行的行尾之间的全部内容。
C-r [字符串] [C-w] [C-y]isearch-backward后向增量地在整个缓冲区中搜索字符串(在缺省情况下,将搜索您上一次给出的搜索字符串,如果存在),C-w 使用从光标处到光标所在单词的词尾之间的文本,C-y 使用从光标处到光标所在行的行尾之间的全部内容。
C-s Enter C-w单词或者短语word-search-forward在整个缓冲区中前向搜索给定的单词或者短语(不管它们之间如何分隔)。
C-r Enter C-w单词或者短语word-search-backward在整个缓冲区中后向搜索给定的单词或者短语(不管它们之间如何分隔)。
C-M-sisearch-forward-regexp在整个缓冲区中前向增量搜索给定的正则表达式。
C-M-risearch-backward-regexp在整个缓冲区中后向增量搜索给定的正则表达式。
replace-string从光标处到缓冲区末尾搜索给定的字符串,并使用给定的字符串来替换它。
replace-regexp从光标处到缓冲区末尾搜索给定的正则表达式,并使用给定的字符串来替换它。
M-%query-replace从光标处到缓冲区末尾搜索给定的字符串,对于搜索到的每个实例,询问(如表 4 中所述)是否使用给定的字符串来进行替换。
C-M-%query-replace-regexp从光标处到缓冲区末尾搜索给定的正则表达式,对于搜索到的每个实例,询问(如表 4 中所述)是否使用给定的字符串来进行替换。

query-replace 可使用的筛选项

描述
空格、y替换这个匹配。
Del、n跳过这一匹配到下一个匹配。
Enter、q退出 query-replace。
.进行本次替换,然后退出 query-replace。
进行本次替换,将光标移动到此处,然后退出 query-replace。
C-r指定递归编辑。
C-w删除这个匹配并递归编辑。
C-l重绘屏幕,并使这一行位于屏幕正中位置。
!继续进行所有的替换,而无需再次询问。
E编辑替换的字符串。
^退回到前一次替换。

拼写检查

通过M-x flyspell-mode 进入Flyspell模式

键盘输入函数描述
M-$ispell-word调用 Ispell 以检查光标处单词的拼写。
ispell-region调用 Ispell 以检查某一区域中的拼写。
ispell-buffer调用 Ispell 以检查从光标处到缓冲区末尾的所有单词的拼写。
flyspell-mode在您输入内容的同时,调用 Ispell 以便在后台检查缓冲区中所有单词的拼写,突出显示所有的拼写错误。

Flyspell 模式的键绑定

绑定描述
M-$调用 Ispell 以检查光标处单词的拼写。
M-x flyspell-auto-correct-word,M-Tab根据 Ispell 给出的修改建议,自动地纠正最近一个拼写错误的单词。
M-x flyspell-auto-correct-previous-word根据 Ispell 给出的修改建议,自动地纠正前面拼写错误的单词。
M-x flyspell-correct-word,B2显示单词建议的弹出菜单。

Ispell 单词替换命令

描述
字符使用以(字符)开头的替换建议。
空格在此上下文中接受这个单词作为更正。
i接受这个单词作为更正并将其插入到个人字典文件。
a仅对于此次 Emacs 会话接受这个单词作为更正。
A仅对于此次 Emacs 会话中的缓冲区,接受这个单词作为更正。
r使用您输入的字符串替换这个单词(Ispell 会再次进行拼写检查)。
R使用您输入的字符串替换这个单词(Ispell 会再次进行拼写检查),并对整个缓冲区的剩余部分运行 query-replace。
l使用给定的字符串替换这个单词,并在给定的字典文件中查找这个新的字符串。
u将这个单词的小写形式插入到个人字典文件。
m使用给定的字符串替代这个单词,将其保存到个人字典,然后再次对该单词进行拼写检查。
C-l使当前行位于屏幕中心位置。
C-r进入一个递归编辑。
C-z挂起 Emacs。(In X 窗口系统中,这个操作将对 Emacs 客户端窗口进行图标化。)
x退出拼写检查,并将光标移回到它的原始位置。
X退出拼写检查,并使光标位于它当前所在的位置。
q立刻结束拼写检查。
?显示选项菜单。

Tips:在linux上没有Ispell 需要安装aspell,aspell-en.x86_64,最后修改 .emacs问题,添加如下内容

1
2
3
4
;; use apsell as ispell backend
(setq-default ispell-program-name "aspell")
;; ;; use American English as ispell default dictionary
(ispell-change-dictionary "american" t)