介绍 Maak.el,这是一款利用 GNU Guile Scheme 实现 Emacs 无限扩展的现代工作自动化工具。
在你们的电脑里,有没有每天都在用的“私人助理”?可能很多人会想到网页浏览器或即时通讯工具,但在程序员的世界里,有一位特别的助理,那就是名为“Emacs”的文本编辑器。如果你认为它仅仅是一个写字工具,那可就大错特错了。事实上,Emacs 本身就像一个巨大的操作系统,它被称为“Lisp 机器”(Lisp Machine,即可以通过 Lisp 语言完全控制编辑器内部的系统),用户可以根据需要无限扩充其体量并随心所欲地改变其功能[Source 5, Source 7, Source 12]。
今天介绍的 Maak.el,正是能让 Emacs 成为更强大、更聪明工作助理的最新命令执行工具。
为什么这个工具很特别?
我们每天都会被重复性的工作所困扰。每次启动项目时都要调整配置、运行测试、整理文件等。程序员为了减少这些机械劳动,会使用“任务执行工具”(Task Runner,帮助一次性运行复杂命令的工具)。
问题在于,大多数工具只能在固定的框架内运作。“这个功能不错,但不太符合我的工作习惯”,即便这么想,也很难按照自己的意愿进行修改。但 Maak.el 不同,该工具以“无限扩展性”为核心价值,帮助你按照自己希望的方式设计工作流[Source 2, Source 4]。它提供的不仅仅是一个现成的工具,更是一种让你亲手打造工具的创造性体验。
浅显易懂:像“万能组装套件”一样的工具
为了更容易理解,我们打个比方。市面上的任务执行工具如果是预先组装好的玩具汽车,那么 Maak.el 就是由乐高积木组成的“万能组装套件”。
玩具汽车按按钮后只能按既定路线行驶,但乐高套件可以随意加装轮子或安装翅膀。Maak.el 使用名为“GNU Guile Scheme”(GNU Guile Scheme,函数式编程语言 Lisp 的一种)的强大编程语言作为组装积木[Source 2]。
在 Emacs 这个工作室里,你可以利用这些“Scheme”积木创建属于自己的指令并实现项目自动化。例如,只需按下一个特定按钮,就能一次性完成复杂的测试过程,并将结果自动整理存储到我的文件夹中,像这样灵活地制作出“属于我的工作自动化机器人”[Source 4, Source 8]。
当前现状:Emacs 的进化
Emacs 是一款历史悠久的程序。由理查德·斯托曼(Richard Stallman)开发的这款编辑器以 Lisp 语言为基础,具有可以像数据一样自由操作函数的强大特征[Source 1, Source 7]。
目前,无数 Emacs 用户通过各种插件来扩展编辑器的功能[Source 9]。但像 Maak.el 这样直接引入现代函数式语言 GNU Guile Scheme 来控制命令执行流的方式,让用户能够在更深层次上与编辑器进行交互[Source 2, Source 15]。得益于此,从编程自动化到简单的系统命令,所有工作都可以在 Emacs 内无缝连接[Source 4]。
未来展望:用自己的工具工作
未来,程序员的工作环境将更加个性化。与其强行将现成的工具硬套在自己的工作方式上,不如像 Maak.el 那样,用自己的语言定义工具的方式将更受关注。如果你是 Emacs 用户,何不让你的编辑器超越简单的文本输入,将其进化为指挥工作的真正“智能 Lisp 机器”呢?
参考资料
- Emacs Lisp - Wikipedia (https://en.wikipedia.org/wiki/Emacs_Lisp)
- Maak: The power of Lisp that powers your trusty command runner and the enlightments - jointhefreeworld (https://jointhefreeworld.org/blog/articles/lisps/maak/index.html)
- M-x emacs-reddit (https://www.reddit.com/r/emacs/)
-
Emacs As A Lisp Machine Irreal (https://irreal.org/blog/?p=279) - Emacs In a Box (https://caiorss.github.io/Emacs-Elisp-Programming/)
- Maak.el:LispmachinecommandrunnerinEmacs,infinitely… (https://news.ycombinator.com/item?id=49607858)
- Emacs: The Thermonuclear Text Editor (https://www.danfowler.net/resources/emacs_talk/)
- hackernoon.com/lambdock-a-hackable-wayland-dock-built-with-c-and… (https://hackernoon.com/lambdock-a-hackable-wayland-dock-built-with-c-and-lisp)
- Common Lisp
- GNU Guile Scheme
- Emacs Lisp
- 简单的文本编辑器
- 可无限扩展的现代任务执行工具
- 图形设计专用工具
- VS Code
- Vim
- Emacs