Emacs启动加速篇

Emacs虽然强大,但是其作为一个伪装成编辑器的”操作系统”,在启动耗时方面是广大Emacs用户的痛点。虽然现在用上Doom Emacs,比起Spacemacs启动要快了不少。在公司开发用的MBP上(内存16GB,i7 6核CPU, 500GB SSD),单次启动加载完所有插件大概需要4秒多的时间。

恰巧最近又买了个德国的高配置VPS,访问速度还不错。于是心血来潮,在上面折腾了开发环境,还装了Doom Emacs,打算实现用任何一台低配置的瘦客户端SSH登录到云端VPS, (或者在Chrome中用SSH扩展连接过去) 达成用Emacs在 “云端” 写代码的一个小目标……

其实,这样的目标已经实现了,美中不足的地方在于: 由于是SSH连接过去,每次退出SSH会话的时候还得退出Emacs,下次启动Emacs又得花掉人生中宝贵的四秒钟时间,实在是不甘心。正好,Emacs从26.1开始,已经支持使用systemd管理Emacs服务端Daemon的功能。这样一来,我们只需要在VPS上后台使用Systemd启动一个Emacs的服务端,每次SSH登录的时候,用Emacs客户端启动,就能实现秒开Emacs的效果了。

在Emacs安装完成后,会在 /usr/lib/systemd/user 中创建一个Systemd的配置文件,名为: emacs.service。跟其他的Systemd服务一样,我们只需启动这个服务即可。

启动并运行Emacs服务端程序:

1
systemctl --user start emacs.service

为了下次随机器启动时,自动启动Emacs服务端程序,我们还可以运行:

1
systemctl --user enable emacs.service

随后,查看Emacs服务运行情况:

https://xiaozhou.net/pics/emacs/5.png

服务端启动妥当,最后,只需要在SSH登录后,运行Emacs客户端程序,即可秒开Emacs了,又为人生中省下了不少个4秒钟:

1
emacsclient -t

https://xiaozhou.net/pics/emacs/4.png

支持原创技术分享,据说打赏我的人,都找到了女朋友!