在2022年,与Emacs再重逢

尽管Emacs 28正式版还没有发布,我已经在自己的编程环境中编译了Emacs 29。所以也就有了这篇文章。与此同时,我进一步整合了我的几个装备,形成了目前正在运用的一个装备:cabins/emacs.d。

我的目标

因为我同时在以下几个环境下运用Emacs,所以我期望我的装备能够适配以下环境:

  • 作业机:Windows 10 (With msys2)
  • 个人机:macOS
  • 服务器:CentOS (Remote Server)
  • termux (Android PAD)

最终一个尽管比较奇怪,但确实是我的实际需求。好在termux与Linux的装备简直能够不必修正的运用,除了termux中的Emacs版别略低(27.2)。

前两者主要是在GUI下面作业,后两者主要是CLI形式。

装备的特色

  • 存在一些兼容渠道的代码,因为上面的原因,所以会有一些跨渠道的代码逻辑,这一点不可防止。
  • 尽或许多的运用Emacs内置的一些功用和形式。
  • 运用轻量级的eglot来替代lsp-mode实现编程IDE功用。

运用的内置Mode

  • auto-fill-mode,能够在minibuffer里边主动地填充当时光标位置的函数,变量名等
  • global-auto-revert-mode,主动将文件的修正同步到buffer中
  • auto-save-visited-mode,主动保存功用(Emacs26引进的内置功用)
  • 在cc-mode-common中启用了c-toggle-auto-hungry-state,能够运用快速删去以及分号主动换行的功用,合适C/Java等环境的编程习气
  • fido-vertical-mode,垂直排版的fido-mode,Emacs28.1引进的新功用,这一点让我扔掉了很多的第三方包
  • 在编程形式下启用了flymake-mode,错误提示
  • 在文本形式以及org mode中启用了flyspell-mode,语法检查
  • 在编程环境下启用了display-line-numbers-mode,显现行号
  • column-number-mode,在modeline上显现列号
  • 编程形式下启用了prettify-symbols-mode
  • global-visual-line-mode,软换行显现

以上的功用中,主动保存与垂直fido或许是一部分人比较陌生的,因为是近几年才/会增加的功用。但能够让我们免除了安装不少第三方包的烦恼,进一步(或许)加快Emacs的运行。

依然保留的第三方包

  • company,主动补全
  • ctrlf,一个简洁的isearch,体会不错
  • crux,一些好用的指令集合,但我取消了所有的快捷键绑定,防止冲突
  • exec-path-from-shell,环境变量的承继
  • format-all,各类编程言语代码格式化
  • rainbow-delimiters,彩虹括号
  • which-key,按键提示
  • yasnippet,代码片段
  • eglot,lsp的一个实现IDE的客户端

还有部分其他的第三方包,纷歧一列出。以上几个,是我强烈推荐安装的。

再重逢

我认识Emacs很久了,但是真实意义上开端把Emacs当作主力的编辑器,我现在回想起来,大概就是我开端在B站录制《Emacs高手修炼手册》的时候。也是这个视频让我真实意义上,把Emacs当作了一个可信赖的同伴,可持久运用的趁手武器。

而后来我体会了很多的插件后,我开端思考和探究Emacs本身的一些魅力,我开端删去我的一些第三方包,开端忍耐Emacs的不完美。慢慢的,我录制了《Emacs轻奢之路》,也就是这时候开端,我逐步的将Emacs装备最简化了。一些花里胡哨的插件,也慢慢地成了昙花一现。

而主动保存,垂直fido这样的功用的内置之后,我感觉Emacs在逐步的补偿完好那些正派的不完美。而将来,假如eglot这样的插件,再变成了内置功用的话,Emacs将更加的诱人。

2022年3月,深圳的疫情忽然加剧,7天的慢生活,屡次的居家工作,让我开端在下班后,有了一些时间来编写一些文章。我对录制视频或许失去了很多的兴趣,而更加享用安静的文字编写。这样的特殊日子里,与Emacs再重逢。

与同样喜欢Emacs的你,再重逢。