newsence
Emacs-libgterm: Terminal emulator for Emacs using libghostty-vt

Emacs-libgterm: Terminal emulator for Emacs using libghostty-vt

Hacker News·7 天前

Emacs-libgterm 是一個基於 Ghostty 終端引擎 libghostty-vt 構建的 Emacs 終端模擬器。目前處於早期原型階段,支援 ANSI 顏色、完整按鍵處理、捲動回溯及游標同步。

背景

Emacs-libgterm 是一個為 Emacs 開發的新型終端模擬器,其核心採用了 Ghostty 終端機的模擬引擎 libghostty-vt。這項專案旨在延續 emacs-libvterm 的架構設計,但改用 Zig 語言編寫的現代化引擎,目前仍處於早期原型階段,主要在 macOS 環境下進行開發與測試。

社群觀點

針對這項新工具的出現,Hacker News 社群展開了多層次的討論,首先聚焦於 Emacs 作為「偽裝成編輯器的作業系統」這一經典話題。有使用者戲稱在 Emacs 裡跑終端機是為了執行 Vim,這隨即引發了關於 Emacs 本質的辯論。支持者認為 Emacs 並非單純的編輯器,而是一個內建編輯功能的 Lisp REPL 環境,其目標是建立一個可程式化的宇宙,而非僅僅是像 Vim 那樣精確的工具。這種觀點進一步延伸到對 GNU 體系的期待,有評論者認為 Emacs 應該擺脫對外部工具如 Gnuplot 或 Coreutils 的依賴,全面轉向以 JIT 編譯的 Elisp 重新實現各項功能,甚至想像未來能與 Guix 或 Hurd 深度整合,重現 Lisp 機器的榮光。

然而,實務派的使用者對此持有保留意見。反對全面 Elisp 化的觀點指出,Elisp 目前缺乏真正的多執行緒支持,若將所有運算密集型任務(如 Grep 搜尋)都放在 Elisp 執行,將會導致 UI 介面頻繁卡頓。因此,像 libgterm 這樣將複雜的終端狀態機交給外部高效能函式庫處理,再由 Emacs 進行封裝,被認為是更務實且具備相容性的做法。

安全性與開發方式也是討論的焦點之一。由於作者在文件中提到該專案是「憑感覺編碼」(vibe coded),這引起了部分資深使用者的疑慮。他們認為終端機經常處理密碼、SSH 金鑰與 API 憑證等敏感資訊,若缺乏嚴謹的審核或開發流程,很難讓人放心使用。不過也有支持者反駁,核心的模擬邏輯是由高品質的 Ghostty 引擎負責,Emacs 端的封裝層風險相對較小。

此外,社群也探討了在 Emacs 中使用終端機的必要性。部分使用者習慣直接使用 shell-command 或輸出緩衝區,認為 TUI 程式與 Emacs 的快捷鍵邏輯格格不入。但擁護者則指出,像 vterm 或 gterm 這樣的工具可以讓 Emacs 充當終端多路複用器(類似 tmux),且能隨時切換到複製模式,將終端內容視為純文字緩衝區進行操作,這在處理大量日誌或編譯輸出時具有極大的優勢。

延伸閱讀

在討論過程中,社群成員也推薦了其他相關工具。對於追求純粹 Elisp 實現的使用者,EAT(Emulate-A-Terminal)被提及是一個效能優異且能與 Eshell 深度整合的選擇。另外,MisTTY 則被推薦給需求較輕量、尋求不同整合體驗的使用者。針對 GNU 體系的未來想像,留言中也提到了 9front 與 GNU Guix 作為不同計算範式的參考。

https://github.com/rwc9u/emacs-libgterm