前期的快速入门内容中,分6次介绍了Emacs的基本操作方法和基础概念,包括编辑、搜索、替换、窗格、窗口和缓冲区,了解了这些概念之后,就可以使用Emacs进行工作了。就我个人的实际体会来讲,在使用的过程中还是感觉很大的不方便,还不如windows的记事本简单实用。这是因为Emacs是一个复杂的、强大的编辑软件,可以进行复杂的设置,对于开发者而言完全可以作为IDE来使用,也就是说,Emacs还有大量的潜在功能需要我们去了解,还需要我们更加深入的学习。从今天起,我们就进入Emacs的进阶部分,进一步深入了解Emacs。我仔细翻阅了Emacs官方指南,觉得应当从模式(Mode)开始。
为了简便期间,对文中命令进行了缩写,其中:
·C代表CTRL键
·M代表ALT键。
模式是Emacs的一个重要概念。在快速入门中我们学习过缓冲区,所有通过Emacs打开的文件都会在缓冲区中显示,每个缓冲区怎么显示,能够使用什么样的命令,就是由模式来决定的。可以把一个模式理解为一组默认设置,包括Emacs的显示方式、编辑方式以及相关的命令集。Emacs每打开一个文件,每显示一个缓冲区,就会向该缓冲区赋予一个模式。模式又分为主要模式(Major Mode)和次要模式(Minor Mode)。
一、主要模式
每个缓冲区都有一个,且仅有一个主要模式。通常情况下,主要模式是Emacs根据打开的文件类型而设置的,也可以通过Emacs的配置文件设置一个默认的模式。
Emacs提供的主要模式有很多,例如:
◎text-mode:文本编辑模式,用于常规的文本编辑。
◎Info-edit-mode:帮助文件的编辑和显示模式。
◎C++-mode:C++文件的编辑和显示模式。
◎C-mode:C文件的编辑和显示模式。
不仅仅是这些,还有更加细化的,如:
◎dns-mode:DNS文件的编辑和显示模式。
◎image-mode:图片编辑和显示模式。
◎css-mode:css文件的编辑和显示模式。
还有比较特殊的shell模式,用于模仿控制台。
二、次要模式
次要模式与主要模式的主要区别有以下两点:
(一)与缓冲区的对应关系不同
一个缓冲区有且仅有一个主要模式。一个缓冲区可以有多个次要模式,理论上也可以没有次要模式(此种情况仅是理论上存在)。
(二)应用范围不同
主要模式仅在该缓冲区内生效。次要模式分为两类,一类是局部生效,即启用后仅对当前缓冲区有效;另一类是全局生效,即启用后对所有缓冲区生效。
三、模式相关命令
主要模式、次要模式都与M-x相关,要在缓冲区中应用模式只需要执行相关的模式命令,大部分的模式命令都以“mode”结尾。
四、shell模式
shell模式为我们提供了通过Emacs与操作系统交互的途径。
1.启动shell模式
在Emacs中执行M-x shell,默认会产生一个新窗格,在该窗格中出现命令行提示。
我们可以看到,新窗格的名称默认为“*shell*”,主要模式是“Shell”。
2.在shell中操作
在该窗格中,可以像正常的控制台一样,执行cd、dir、pwd等操作系统命令。
3.思考题:如果改变模式会怎样?
在shell模式下执行“M-x text-mode”,就将当前模式变为text模式,这时就只能进行文本编辑,而无法执行操作系统命令了。
领取专属 10元无门槛券
私享最新 技术干货