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函数(删除缩进函数)

转换大小写
  1. 将光标处到光标所在词的词尾之间的所有文本转化为大写字母

    M-u:uppercase-word函数

  2. 将光标处到光标所在词的词尾之间的所有文本转化为小写字母

    M-l:downcase-word函数

  3. 单词首字母大写

    M-c

搜索和替换文本

最基本最常用的搜索方式是增量搜索,即输入每一个字符时都会将光标移动到第一个匹配的实例处

向前增量搜索(应该指的是字符向前,光标向后)

C-s:isearch-forward函数,重复搜索或者移动到下一个匹配项,再次输入C-s即可

向后增量搜索

C-r: isearch-backward函数

非增量搜索

输入C-s或者C-r然后下按Enter以指定非增量搜索

单词搜索

C-sC-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 协议 ,转载请注明出处!