Grey

#+ :OPTIONS ^:nil

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

emacs restart-emacs插件的功能探索

resatrt-emacs是一个比较简单的插件,主要的功能就是提供一个交互式命令满足重启emacs的功能。其实,这个功能我一直在用,因为我近几年的emacs配置基本就是spacemacs,而这一套配置之中其实是由这个插件的。这个看似多此一举的功能在很多时候会给我们很多便捷,类似于一个重启系统的功能。尤其是当我在做自己的emacs配置调试的时候,这样的功能用着非常顺手。

插件小故事

首先,这个插件的项目地址在这里: GitHub - iqbalansari/restart-emacs: A simple emacs package to restart emacs from within emacs 从这个页面的介绍可以知道,其实这个插件的开发是受到了这个问题的启发。 相关问题: Restart emacs from within emacs - Emacs Stack Exchange

再看这个问题,发现这个问题其实是8年之前的问题了。也就是说,这一个重启功能的想法其实构建于8年前了。

1831_emacs_restart-emacs插件的功能探索_编辑器


这样的一些信息有时候会让我觉得很有趣,软件的开发成长其实不是一时间的事情,而其背后,其实有很多有意思的小故事。

插件的安装

这个是少有的初学者都能够很容易安装成功的插件了,只需要从elpa或者melpa中联网安装即可。
#+beginsrc M-x package-refresh-contents RET

之后,

M-x package-install RET restart-emacs

#+endsrc

配置及使用

这个插件不需要什么额外的配置就能应用,本身支持的命令也不是很多。但是,也考虑到了GUI以及命令行的一些区分。对于一般的应用来说,直接M-x输入restart-emacs就可以了。
除了这个直接的启动之外,这个插件其实还可以支持几种不同的附加功能。比如说,不关闭emacs直接启动另一个emacs进程。我觉得这个设计算是一个设计过度的表现了,其实大部分时候我们不需要启动两个emacs,即便是启动两个也可以很方便从操作系统直接启动。
不过,说到这个插件的附加功能我觉得还是可以看看的。比如说,这个插件可以指定emacs以调试模式启动,或者按照-Q的模式启动。我尝试了几次,调试模式在我的环境下没有启动成功,但是-Q是可以的。这样的功能对我来说也不过是锦上添花的一些附加,因此不去做更多的操作记录整理。

与spacemacs的功能对比

spacemacs中也有这样的功能调用,那么两者是否是同一个功能呢?其实很简单,直接看插件以及源代码即可。

以下是我自己从网络上获取的插件信息:

1831_emacs_restart-emacs插件的功能探索_emacs_02

以下是spacemacs中的插件代码信息:

1831_emacs_restart-emacs插件的功能探索_sed_03

从上面的对比信息看,其实两个插件来源于同一个项目,只是版本略有不同而已。

问题

这里面支持的参数传递的功能,在我测试的时候遇到了一些障碍。其实并不是这个插件本身的问题,而是我使用了evil,因此导致了C-u的按键用作了其他的用途。因此,测试这样的功能的时候,我尝试禁用了我自己配置中的evil才实现了几个参数选项的不同效果尝试。