"我创建 Neomacs,是因为我热爱 Emacs,我尊重 Emacs,并且我希望将传奇的 Emacs 进化为终极的现代 powerhouse。" — Eval Exec
✨ "其他编辑器可以保存你的文件,但只有 Emacs 能拯救你的灵魂。" ✨
Emacs,使用 Rust 重写——在 GPU 上释放性能,修复 40 年 C 语言始终无法解决的问题。
专为 100% 兼容您现有的 Emacs 生态系统而构建——您的配置、您的包、您的肌肉记忆。
Install · Showcase · Animations · Architecture · FAQ · Discussions
NEO Emacs 保留了让 Emacs 成为 Emacs 的一切——你的 init.el、你的包、你的
肌肉记忆——并重构了底层机制:显示引擎运行在
GPU 上,而约 300,000 行的 C 核心已用 Rust 重新实现。GNU Emacs 本身充当
测试基准,因此每个重写的子系统都经过验证,确保行为完全一致。
(为什么要重写 Emacs?)
[!IMPORTANT] NEO Emacs 是一个正在进行中的项目。请预期存在粗糙之处、破坏性变更以及缺失的 功能——错误报告 非常受欢迎。
[!NOTE] NEO Emacs 是 GNU Emacs 的硬分叉(Lisp 树已同步至
emacs-31.0.90)。C 核心 已被 Rust 完全取代。分叉来源及理由:FAQ.
Showcase
光标、缓冲区切换和滚动动画 — 以显示刷新率进行 GPU 渲染:
https://github.com/user-attachments/assets/85b7ee7b-3f4a-4cd2-a84f-86a91d052f11
更多:4K 视频、内联浏览器、内联终端、圆角框面…
内联 4K 视频播放 — DMA-BUF 零拷贝,GPU 后端
https://github.com/user-attachments/assets/275c6d9a-fced-44f6-8f43-3bbd2984d672
内联 4K 图像 — GPU 解码,不会阻塞 Emacs 主线程
内联 Web 浏览器 (WPE WebKit) — GPU 后端,DMA-BUF 零拷贝
内联终端 (Alacritty) — 嵌入在缓冲区中的 GPU 支持终端
带圆角框面的 GPU 文本
亮点
- GPU 显示引擎 — 文本、图像和特效通过 wgpu 渲染
(Vulkan · Metal · DX12 · GL);约 4,000 行 Rust 代码取代了约 50,000 行
xdisp.c - 缓冲区中的丰富媒体 — 内联 4K 视频 (GStreamer + VA-API)、GPU 解码 图像、WPE WebKit 浏览器以及 GPU 终端 — 全部通过 DMA-BUF 实现零拷贝
- 无处不在的动画 — 8 种光标模式、21 种滚动特效、10 种缓冲区 过渡效果,均以显示刷新率运行,且均可从 Elisp 配置 (完整目录)
- 在 Lisp 层以下可深度定制 — 在 GNU Emacs 中,可定制性在 C 显示引擎处终止;NEO Emacs 将整个前端向 Elisp 开放,从渲染 特效到 GPU 着色器 (WGSL) — 定制像素,而不仅仅是文本
- 兼容性即契约 — 你的
init.el、包和肌肉记忆; 每个重写的子系统都会与 GNU Emacs 进行差异比对作为测试基准,并且 像 Doom Emacs 这样的真实配置是日常测试环境 - 纯 Rust 核心 — 无 C 残留:Elisp 求值器、字节码虚拟机、GC、可移植 dump 以及编辑器内部机制均为内存安全的现代 Rust
- GUI 或终端 — 同一个二进制文件可在 GPU 上或 TTY 中渲染 (
neomacs -nw) - 下一步 — 真正的多线程 Elisp 和并发零暂停 GC (状态)
安装
从 Releases 下载适用于你平台的最新发行版:
| 平台 | 软件包 |
|---|---|
| Linux | AppImage · .deb · .rpm · tarball (x86_64, aarch64) |
| macOS (experimental) | .dmg (Apple Silicon) |
| Windows (experimental) | installer .exe · portable .zip |
从源码构建
git clone https://github.com/eval-exec/neomacs && cd neomacs
# Optional (recommended): repo dev shell with all dependencies
nix develop --accept-flake-config
# Compiles Rust, bootstraps Elisp, generates the portable dump
cargo xtask fresh-build --release
./target/release/neomacs
平台依赖(Arch、macOS、Nix/Cachix)以及测试套件: docs/building.md.
状态
| 领域 | 状态 |
|---|---|
| 100% GNU Emacs 兼容性(oracle 测试套件) | 🚧 ~95%,正在弥合最后差距 |
| Elisp 的 JIT 编译 + 内联缓存 | 🚧 可用,正在剖析并改进 |
| 零暂停 GC | 🚧 正在成熟 |
| 可被 Elisp 定制的 frontend — GPU 着色器、表面 | 🚧 早期阶段,正在扩展 |
| Rust Elisp 运行时 — 求值器、字节码 VM、可移植 dump | 🚧 正在重构、测试、改进 |
GPU 显示 + 布局引擎(替代 xdisp.c) | 🚧 早期阶段,正在改进 |
| 内联图像、4K 视频、WebKit 浏览器 | 🚧 当前可用,实验性,正在改进 |
| 高性能 neo-term(GPU 终端) | 🚧 开发中 |
| 光标 / 滚动 / 缓冲区切换动画 | 🚧 正在打磨,目录正在增长 |
| 性能 | 🔬 正在剖析、基准测试、调优 |
| 真正的多线程 Elisp | 🔬 正在设计、研究、实验性尝试 |
TUI 渲染器(neomacs -nw) | 🚧 可用,正在打磨 |
| 跨平台支持 | 🚧 优先 Linux & macOS;Windows 等待测试;WASM、Android & iOS 计划中 |
架构
所有组件均在 Rust 中运行,跨越两个线程 — Emacs 线程拥有 Elisp 运行时 和编辑器状态,渲染线程拥有 GPU。
设计原则、完整的模块映射,以及为何选择 Rust/wgpu: docs/ARCHITECTURE.md.
赞助
NEO Emacs 是一个长期项目,需要大量持续工作来构建、测试和 维护。如果 NEO Emacs 对您有用或令人兴奋,请考虑在 ❤️ GitHub Sponsors 上支持其 开发。
致谢
基于 wgpu · winit · cosmic-text 构建——光标动画灵感源自 Neovide。
License
GNU General Public License v3.0(与 Emacs 相同)
