Ghostel 把 Ghostty 終端機塞進 Emacs

2026/07/12(日) 16:52・精選・原始出處

Ghostel 是給 Emacs 用的終端機模擬器,核心採用 Ghostty 同款的 libghostty-vt。它把工作拆成兩層:以 Zig 原生模組處理終端狀態、畫面渲染與本機 PTY,Elisp 則負責 buffer、快捷鍵、指令及遠端整合。實際上不只跑 shell,也支援 Kitty keyboard/graphics protocol、行內圖片、OSC 8 超連結、進階底線、色彩查詢與 synchronized output。

現實應用

最直接的受眾是長時間待在 Emacs 的開發者:寫程式、跑測試、看 log、操作 REPL 或 SSH 遠端主機,都不必切去外部終端機。它也整合 project、TRAMP、compilation、Eshell、Comint 與 Evil,並能追蹤目前目錄、辨識 prompt、檔案和連結;shell 還可透過白名單呼叫 Emacs Lisp,例如直接開檔、進 Dired 或叫出 Magit。

五種輸入模式則解決終端快捷鍵和 Emacs keymap 經常打架的老問題。預設 semi-char mode 保留部分 Emacs 操作,char mode 全部送進終端;copy mode 可凍結輸出後再選字,對持續噴 log 的工作尤其實用。

期望評估

我認為低標期望,是得到一個功能完整、能留在 Emacs 裡工作的現代終端機;即使不碰進階設定,首次使用也能下載預編譯模組,執行 M-x ghostel 開始工作。

高標來看,我猜它有機會成為 vterm 使用者的升級選項,尤其適合需要 Kitty 圖片、較新鍵盤協定和深度 Emacs workflow 的人。不過終端模擬牽涉平台、shell 與遠端環境,短期內仍不太可能完全取代成熟的獨立終端機。

商業策略分析

Ghostel 本身是 GPL-3.0 開源專案,商業意義不在直接收費,而是把 Ghostty 的 VT 引擎推進另一個重度開發者生態。受影響的主要是 emacs-libvtermeat 等 Emacs 終端方案。

我認為值得 Emacs 工具作者跟進,因為較新的終端協定能帶動圖片預覽、互動式 CLI 與開發工具整合;一般團隊則先觀察穩定性即可,沒有 Emacs-first 工作流就不必為它改變工具鏈。

實作細節

需求為 Emacs 28.1 以上且支援 dynamic module,涵蓋 macOS、Linux、FreeBSD 與原生 Windows。可從 MELPA 安裝:(use-package ghostel :ensure t);Emacs 30 以上也能用 use-package :vc 指向官方 repository。常見平台首次啟動可下載預編譯模組,其他架構需用 Zig 0.15.2 編譯。

已知限制包括 Windows 到 TRAMP 遠端終端暫不支援動態視窗縮放,少見的自訂 Windows Emacs build 也僅屬 best-effort;原生模組架構還必須與 Emacs 本身一致。

延伸連結