Oz Vibe 项目

完全使用 Zig 语言编写的终端文本编辑器,以「Vim 功能的子集」为核心定位,同时引入了大量现代插件生态的功能增强

Oz 是一款完全使用 Zig 语言编写的终端文本编辑器,以「Vim 功能的子集」为核心定位,同时引入了大量现代插件生态的功能增强,专为追求极致启动速度与编辑体验的开发者打造。项目托管于 GitHub,采用开源许可。

项目简介

Vim 是终端编辑器领域的经典之作,但其陡峭的学习曲线和繁杂的配置体系让许多开发者望而却步。Oz 在保留 Vim 核心操作哲学(六种模式:普通 / 插入 / 可视 / 可视行 / 可视块 / 命令)的基础上,重新实现了所有基础编辑功能,并融入了当代插件生态中经过社区验证的最佳实践,让用户无需折腾配置文件,开箱即用即可获得接近现代 IDE 的编辑体验。项目采用 Zig 语言编写,编译产物即为可直接运行的单文件,启动速度极快。

核心功能

  • 六种模式完整实现:普通、插入、可视、可视行、可视块、命令模式齐全,所有 Vim 基础操作均有对应实现,包括计数前缀、完整动作(hjkl、w/e/b/ge、^/0/$、gg/G、{/}、%、f/F/t/T、Ctrl-u/d/f/b)。
  • 高级文本操作:文本对象、包裹操作、注释、对齐;EasyMotion 导航(s / f);多光标编辑(Ctrl+n);支持系统剪贴板的寄存器语义(OSC52 + pbcopy/wl-copy/xclip/xsel,兼容 nvim clipboard=unnamedplus 风格)。
  • 键盘宏:q{reg} 开始录制(q 停止),@{reg} 回放并支持计数(3@a、@@);可视化模式下 @ 逐行执行宏;录制状态实时显示。
  • 分屏与工作区:支持水平(:sp)与垂直(:vs)分屏,配合 Ctrl+w 系列快捷键管理窗口;独立缓冲区标签页栏、相对行号、代码折叠。
  • 语法高亮与 UI:基于 tree-sitter 的多语法高亮引擎,捆绑多种语法包;彩虹括号、缩进引导线与范围高亮动画;内联 Markdown 渲染(标题、加粗、斜体、链接、代码,行内代码块保留语法高亮);20 款内置主题(含 Kanagawa、Catppuccin、Tokyonight、Doom One 等流行配色),主题选择器支持实时预览,选择自动保存无需配置。
  • LSP 支持:异步 LSP 附着(绝不阻塞启动),自动检测 zls 等常见 LSP 服务器安装路径;支持悬停(K)、跳转定义/声明/引用/实现(gd/gD/gr/gI)、签名帮助(gs);诊断标记、[d/]d 跳转、诊断列表(sd);自动补全菜单、幽灵文本、内联提示(ti);重命名(rn)、格式化(lf)、文档大纲(o)。
  • 模糊搜索与导航:模糊文件搜索(sf)、模糊 Grep(st)、缓冲区切换(sb)、最近文件(sr)、快捷键映射搜索(sk);可折叠文件树(e 切换,E 定位当前文件),工作区根目录自动识别最近 .git 目录。
  • Doom-Emacs 风格工作区:SPC TAB n 新建 / . 切换 / r 重命名 / d 删除 / x 清除会话 / [ ] 切换;每个工作区拥有独立的缓冲区、窗口布局和文件树,防止同一文件在多个工作区重复打开。
  • Git 集成:侧边栏差异标记、]c/[c 提交块跳转、hs/hr 暂存/重置、hp 块预览;当前行 Blame 幽灵文本(光标静止 1 秒后显示),tb 一键切换;lg 浮动 LazyGit 窗口;状态栏显示当前分支名。
  • 内置终端:支持 Linux 与 macOS 的嵌入式终端(Alt+r 浮动 / Alt+w 底部 / Alt+e 右侧),终端内按 Esc 返回普通模式。

技术实现

Oz 完全采用 Zig 0.16.0 编写,利用 Zig 的香草构建系统,无需任何第三方运行时依赖。编辑器采用 pty 驱动模式,以屏幕重建方式实现终端内嵌。项目维护者在 Apple Silicon macOS 上针对相同文件进行基准测试,启动性能显著优于 Neovim:处理小文件时 Oz 仅需 66ms(Neovim 需 115ms),打开 5MB / 10 万行文件 Oz 耗时 65ms(Neovim 需 118ms),含 LSP 插件的 .zig 文件 Oz 仅需 52ms(Neovim 需 117ms)。

项目内置单元测试(zig build test)和端到端 pty 测试(zig build e2e,Linux only),确保核心功能的稳定性。

快速上手

编译安装(需要 Zig 0.16.0):

开发构建:zig build 发布构建:zig build -Doptimize=ReleaseFast -Dstrip 运行测试:zig build test 运行 e2e 测试:zig build e2e

运行编辑器:oz [文件名[:行号]]

Oz 的文件树和模糊文件选择器会遵循工作区的项目根目录(最近的上层 .git 目录),帮助开发者始终在正确的项目上下文中工作。

适用人群

习惯 Vim 操作方式、追求编辑效率但不想维护复杂配置文件的开发者;需要极快启动速度作为每日主力编辑器的程序员;喜欢 Doom-Emacs 工作区理念、需要在多个项目或任务间快速切换的高级用户;对现代终端编辑器有需求、同时关注内存占用与响应速度的技术用户。

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论