Emacs第二部分:基本模式和编辑特性
Emacs第二部分:基本模式和编辑特性
编辑模式
模式可以划分为主要模式和次要模式.
主要模式规定了主要的编辑行为,并且仅应用于当前编辑会话中的缓冲区.在任何时刻,每个缓冲区都有且仅有一个活动的主要模式.
次要模式通常提供了一些与任何特定的主要模式无关的特性或功能.可以把它们看作用于控制这些特性的切换:使用其函数名来调用一个次要模式可以开启或关闭该模式,任何时候都可以开启多个次要模式
查看哪些模式是活动的
在Emacs的状态行可以查看到模式的变化,例如INS
键开启的OverWrite
模式,(Ins
键绑定了overwrite-mode
函数)
次要模式通常跟随在主要模式后面,并且都不是所有的次要模式都会显示出来
获得当前模式的描述
C-h m
缺省模式
暂存缓冲区通常设置为Lisp Interaction
模式,
新建Buffer就能看到Emacs的缺省模式Fundamental
模式
常用Emacs模式
Fundamental模式 | fundamental-mode() | 主要模式 | Emacs的缺省模式 |
---|---|---|---|
Text模式 | text-mode() | 主要模式 | 编辑文本的基本模式 |
Abbrev | abbrev-mode() | 次要模式 | 用于生成和使用缩写 |
OverWrite模式 | overwrite-mode() | 次要模式 | 覆盖buffer中的任何现有文本 |
C | c-mode() | 主要模式 | 编写C代码 |
Line Number | line-number-mode() | 次要模式 | 用于显示当前行号 |
设置模式
Emacs模式是一些函数.要调用其中某个函数,输入M-x
然后给出模式名,就行
文本操作
区域缩进
C-space
选中区域后,c-x c-i
+左右方向键进行缩进
c-x c-i
运行indent-rigidly
函数
添加垂直间距而不移动光标
c-o
运行open-line
函数
文本调换
调换光标前后的单个字符
C-t
:transpose-chars函数,
调换光标前后的单个单词
M-t
:transpose-words函数,
调换光标所在的行和光标前面的行
C-x C-t
:transpose-lines函数
将光标所在的行与前面的行连接起来
M-^
:delete-indentation函数(删除缩进函数)
转换大小写
将光标处到光标所在词的词尾之间的所有文本转化为大写字母
M-u
:uppercase-word函数将光标处到光标所在词的词尾之间的所有文本转化为小写字母
M-l
:downcase-word函数单词首字母大写
M-c
搜索和替换文本
最基本最常用的搜索方式是增量搜索,即输入每一个字符时都会将光标移动到第一个匹配的实例处
向前增量搜索(应该指的是字符向前,光标向后)
C-s
:isearch-forward
函数,重复搜索或者移动到下一个匹配项,再次输入C-s
即可
向后增量搜索
C-r
: isearch-backward
函数
非增量搜索
输入C-s
或者C-r
然后下按Enter
以指定非增量搜索
单词搜索
C-s
或C-r
进入增量搜索
Enter
,进入简单搜索
C-w
指定单词搜索
输入搜索内容后Enter
正则表达式搜索
C-M-s
C-M-r
Ctrl Alt 一起按下去
替换文本
M-x
,执行函数replace-string
,输入源字符串,输入要替换的字符串.然后Enter
如果想在整个buffer中删除某个单词,替换成
空
就行了
query-replace
函数可以做到对每一个需要替换的实例提出询问
使用拼写检查器
单词拼写检查
M-$
: ispell-word
函数,检查光标处单词的拼写
检查区域中的拼写
ispell-region
检查区域中的拼写
检查buffer中的拼写
ispell-buffer
在发生拼写错误时进行捕获
FlySpell
模式是次要模式,在输入拼写错误的单词时,突出显示错误,原理是在后台运行Ispell
M-x flyspell-mode
开启和关闭
鼠标中键或者M-$
可以纠正拼写错误的单词
快捷键汇总
文本操作命令汇总
C-x C-i | ident-rigidly | 对区域中的的行进行缩进 |
---|---|---|
M-q | fill-paragraph | 填充光标所在的单个段落 |
C-o | open-line | 以垂直间距在光标下方打开一个新行,而不移动光标 |
C-t | transpose-chars | 调换光标左右的单个字符 |
M-t | transpose-words | 调换光标左右的单个单词 |
C-x C-t | transpose-lines | 调换光标所在的行与光标前面的行 |
M-^ | delete-indentation | 将光标所在的行和前面的行连接起来 |
M-u | uppercase-word | 将光标处到单词结尾的文本转化为大写字母 |
M-l | downcase-word | 将光标处到单词结尾的文本转化为小写字母 |
C-x C-l | downcase-region | 将区域中的内容转化为小写字母 |
C-x C-u | upcase-region | 将区域中的内容转化为大写字母 |
搜索和替换命令汇总
C-s [字符串] | isearch-forward | 在光标后面的区域增量搜索字符串 |
---|---|---|
C-r [字符串] | isearch-backward | 在光标前面的区域增量搜索字符串 |
C-s Enter C-w | word-search-forward | 在整个buffer中搜索光标后面的单词 |
C-r Enter C-w | word-search-backward | 在整个buffer中搜索光标前面的单词 |
C-M-s | isearch-forward-regexp | 在整个buffer中搜索光标后的给定的正则表达式 |
C-M-r | isearch-backward-regexp | 在整个buffer中搜索光标前的给定的正则表达式 |
replace-string | 从光标处开始,替换buffer中所有给定的字符串 | |
replace-regexp | 从光标处开始,替换buffer中所有匹配的正则表达式 | |
query-replace | 从光标处开始,替换buffer中所有给定的字符串,但是每一次替换都会询问 |
拼写纠正
M-$ | ispell-word | 调用Ispell检查光标处单词的拼写 |
---|---|---|
ispell-region | 调用Ispell检查某一区域中的拼写 | |
ispell-buffer | 调用Ispell检查光标到buffer结尾的所有单词的拼写 | |
flyspell-mode | 次要模式,后台运行ispell检查buffer中的所有单词的拼写 |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!