ITADN
eval-exec/neomacs
eval-exec/neomacs · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

"我创建 Neomacs,是因为我热爱 Emacs,我尊重 Emacs,并且我希望将传奇的 Emacs 进化为终极的现代 powerhouse。" — Eval Exec

✨ "其他编辑器可以保存你的文件,但只有 Emacs 能拯救你的灵魂。" ✨

NEOMACS banner

Emacs,使用 Rust 重写——在 GPU 上释放性能,修复 40 年 C 语言始终无法解决的问题。
专为 100% 兼容您现有的 Emacs 生态系统而构建——您的配置、您的包、您的肌肉记忆。

CI Latest release Downloads License: GPL-3.0 Discussions X: Eval-Exec

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

NEO Emacs Showcase Video

光标、缓冲区切换和滚动动画 — 以显示刷新率进行 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 主线程

Emacs 缓冲区中的内联 4K 图像

内联 Web 浏览器 (WPE WebKit) — GPU 后端,DMA-BUF 零拷贝

Emacs 缓冲区中的内联 WPE WebKit 浏览器

内联终端 (Alacritty) — 嵌入在缓冲区中的 GPU 支持终端

Emacs 缓冲区中的内联 Alacritty 终端

带圆角框面的 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 下载适用于你平台的最新发行版:

平台软件包
LinuxAppImage · .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 相同)