emacs minor mode 基础

Grey

全部学习汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used.

什么是minor mode

minor mode类似于偏好选择,对于一个buffer来说可以存在一个或者一个以上。主要的功能应该 修改或者指定默认的行为。

接触过的minor mode示例

几个之前接触过的minor mode(不完整,这是少数几个有印象的)如下:

  • global-auto-revert-mode
  • company-mode
  • mebu-bar-mode
  • linum-mode
  • global-linum-mode

查看当前的minor mode

如何去查看当前buffer的minor mode呢?

  • M-x
  • describe-mode
  • 效果如下:

934_emacs minor mode基础_其他

查看minor mode清单

  • M-x
  • describe-variable
  • minor-mode-list
  • 效果如下:

934_emacs minor mode基础_emacs_02

minor mode的开启与关闭

我接触到的很多minor mode的开启以及关闭的命令都是一个,具有toggle的效果。例如linum-mode, 可以直接M-x,之后输入命令查看效果。

全局minor mode与当前buffer

有的minor mode是可以全局有效的,针对每一个buffer,使用company插件的时候配置过这样的功能。 还有一些minor mode只针对当前的buffer有效。如果要处理具体的buffer,需要自己做一下相关配置。
需要注意的是,并不是所有的minor mode都有两种模式。

在emacs的初始化配置中开后者关minor mode

有一些minor mode的开启对于emacs使用体验有很大的影响,需要在初始化的时候做一下相关的配置。 在我一直用的配置中,典型的就有company以及hungry-delete。当然也有Linum-mode,不过这个被 spacemacs处理掉了。部分配置如下: 934_emacs minor mode基础_emacs_03

其他

其实还有很多功能,功能customize package的方式在GUI中也可以设置,这样的设置会自动生成配置文件, 最终也是在初始化的时候生效。
针对我自己的配置,部分信息如下: 934_emacs minor mode基础_其他_04

小结

这部分在最初接触emacs的时候就已经接触过了,但是具体的定义或者是概念掌握的不是很透彻。后续如果 要对emacs进行精细化的配置,这部分内容还是得深入了解一下的。