Elecxzy:基于 Electron 的轻量级 Windows 类 Emacs 编辑器
Hacker News2026/02/21 20:49机翻/自动摘要/自动分类
1 阅读
内容评分
技术含量
7/10
营销水分
5/10
摘要
Elecxzy 是一款基于 Electron 的 Windows 轻量级类 Emacs 编辑器,摒弃 Lisp 引擎以提升启动速度,保留 Emacs 键位并原生支持 CJK 输入法。核心实现包括虚拟滚动、Piece Table 文本管理和 Win32 API 调用,适合需要键盘驱动编辑体验但不想使用完整 Emacs 的用户。
正文
项目概述
Elecxzy 是一款面向 Windows 的免费、轻量级文本编辑器,旨在提供 Emacs 的键位体验但不依赖 Lisp 引擎。作者是一名在日本的程序员,因在 Windows 上使用原生 Emacs 时遇到 CJK 输入法兼容性差、启动慢等问题,决定基于 Electron(与 VS Code 相同的渲染层)自行实现。
关键特性
- 无 Lisp 运行时 – 完全抛弃 Emacs 的 Lisp 解释器,显著缩短启动与运行时延迟。\n2. 键盘优先的交互 – 保留 Emacs 常用快捷键(新建/打开文件、搜索、分屏、语法高亮等),实现全键盘操作,无需鼠标。\n3. 原生 CJK 输入法支持 – 通过
koffi调用 Win32 API,解决中文、日文、韩文输入法在 Electron 环境下的卡顿与字符丢失问题。\n4. 简洁实现 – 代码全部采用复制‑粘贴方式维护,作者本人不熟悉 Lisp,所有功能均用 JavaScript/TypeScript 编写。
技术实现细节
- 虚拟滚动:为大文件提供 O(1) 渲染,避免 DOM 直接渲染全部行。\n- 自定义 Piece Table:采用分块文本结构管理编辑缓冲区,实现高效的撤销/重做。\n- 逐行语法高亮:放弃 AST 解析,使用正则逐行匹配,牺牲多行注释的准确性以换取更低的 CPU 开销。\n- 键位解析层:自行实现 Emacs 键序解析器,映射到 Electron 的快捷键系统。\n- Win32 API 调用:利用
koffi直接调用ImmGetContext、ImmSetCompositionString等函数,实现对 IME 的精细控制。
开发取舍
在浏览器渲染环境中,作者有意识地剔除“自动换行”等对性能影响大的特性,保持编辑器的原生感受。虽然某些高级功能(如多行注释高亮、插件系统)被省略,但整体启动时间与交互延迟均优于传统 Windows Emacs。
目标定位
Elecxzy 并不企图取代 Notepad、VS Code 或完整的 Emacs,而是为希望在 Windows 上获得 Emacs 键位体验、但不需要深度定制的普通用户提供一个“介于两者之间”的轻量选项。
当前状态与参与方式
项目仍处于 Alpha 阶段,源码已托管在 GitHub,Windows 用户可自行克隆后编译或直接下载可执行文件。详细使用说明、截图与键位表均在 README 中提供。
征求反馈
作者希望了解市场对“无需 Lisp、即开即用、类 Emacs”编辑器的需求,并征询哪些基本功能是用户认为必须具备的,以便后续迭代。