介紹 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