首页
学习
活动
专区
工具
TVP
发布

7.Emacs进阶之模式

前期的快速入门内容中,分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模式,这时就只能进行文本编辑,而无法执行操作系统命令了。

  • 发表于:
  • 原文链接 https://kuaibao.qq.com/s/20181008G1B7V600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据 《腾讯内容开放平台服务协议》 转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云 开发者 公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券