概要
- Ghostel はEmacs用の高性能ターミナルエミュレータ
- 最新の VTエンジン (libghostty-vt)を使用
- 多彩な入力モード とシェル連携機能を搭載
- ネイティブモジュール は自動ダウンロード可能
- 幅広い プラットフォーム に対応(macOS, Linux, Windows等)
Ghostel概要
- Ghostel はEmacs上で動作する ターミナルエミュレータ、libghostty-vt(Ghostty端末と同じVTエンジン)を採用
- Zig製のネイティブダイナミックモジュール が端末状態・描画・PTY I/Oを管理し、Elispがキーマップやバッファ、リモートプロセス連携を担当
- 既存の emacs-libvterm に着想を得た2層設計だが、Ghosttyの現代的なVTエンジンを活用
- Kittyキーボード/グラフィックプロトコル、多彩な下線、OSC 8ハイパーリンク、OSC 4/10/11カラー、同期出力(DEC 2026)等をサポート
- 初回利用時に自動でモジュールをダウンロード、通常は追加ツールチェーン不要
- M-x ghostel でターミナルをすぐに起動可能
クイックスタート
- use-package による設定例
- キーバインドやプロジェクト連携、独自関数の送信例を記載
- プロジェクト切り替えコマンド や kill-ring 連携関数もサンプルあり
- ghostel-eshell, ghostel-compile, ghostel-comint などの拡張も利用可能
- evil-mode ユーザー向けにevil-ghostel拡張も用意
シェル連携の概要
- ディレクトリ追跡 や プロンプトナビゲーション はデフォルトで有効(bash, zsh, fish等)
- Emacs関数をシェルから呼び出し たい場合は、ghostel-eval-cmdsホワイトリストに追加
- bashrc例: INSIDE_EMACS変数でghostel検出し、ghostel_cmdでEmacs関数呼び出し
入力モードの概要
- 5種類のeat.elスタイル入力モード を提供
- セミキャラクタモード (デフォルト):ほぼ全てのキーを端末に転送、一部例外(M-x, C-c等)
- キャラクタモード :全てのキーを端末に転送、M-RETで終了
- ラインモード :M-x shellのような動作、行入力後まとめて端末に送信
- emacsモード/コピー(copy)モード :Emacsバッファとしてナビゲート・コピー可能
- copyモードは出力をフリーズ、新規出力でスクロールしない
- emacsモードはライブで新規出力が流れる
- ghostel-readonly-fast-exit で、ほとんどのキー入力で自動的に通常モードへ復帰
- マウス選択やハイパーリンク移動等で自動的にcopyモードが有効化
動作要件
- Emacs 28.1以上 (ダイナミックモジュール対応必須)
- macOS, Linux, FreeBSD, Windows(ネイティブ対応)
- ネイティブモジュールは自動ダウンロード
- aarch64-macos, x86_64-macos, x86_64-linux, aarch64-linux, x86_64-freebsd, x86_64-windows, aarch64-windows向けに事前ビルド済み
- ソースビルドや他プラットフォーム用には Zig 0.15.2 が必要
インストール方法
- MELPA でのインストール
- (use-package ghostel :ensure t)
- Emacs 30+のuse-package :vc
- (use-package ghostel :vc (:url "https://github.com/dakra/ghostel" :lisp-dir "lisp" :rev :newest))
- :lisp-dirはEmacs 31.1未満のみ必要
- :load-path指定
- (use-package ghostel :load-path "/path/to/ghostel/lisp")
- 手動インストール
- (add-to-list 'load-path "/path/to/ghostel/lisp")
- (require 'ghostel)
- M-x ghostelで起動
ネイティブモジュール管理
- モジュール未検出時は自動でダウンロードまたはビルドを提案
- ghostel-module-auto-install(デフォルトask)で制御
- 手動操作: M-x ghostel-download-module, C-u M-x ghostel-download-module(リリースタグ指定)、M-x ghostel-module-compile(Zigでビルド)
- デフォルトはパッケージディレクトリに配置、安定運用にはghostel-module-directoryで外部ディレクトリ指定推奨
Windows対応
- WindowsネイティブEmacsビルド に対応(ダイナミックモジュール必須)
- x86_64/aarch64向け事前ビルドモジュールを提供
- ConPTY を利用し、Microsoftのredistributable console runtimeがあれば最新機能を利用可能
- 付属ファイル未インストール時はWindows標準ConPTY APIにフォールバック
- TRAMPによるリモート端末はPOSIX環境のみ対応、TRAMP/ssh経由でPTYはリモート側
この概要はGhostelの公式ドキュメント冒頭およびクイックスタート、要件、インストール方法、入力モード、Windows対応に関する主要ポイントを日本語で簡潔にまとめたものです。より詳細な各項目や設定例は、該当セクションの原文を参照してください。