Rewriting Vim in Rust: Lessons Learned
summary
Reimplements Vim behaviors inside Zed, a Rust editor engineered for GPU-speed low latency, and documents surprising edge cases like the dot command complexity that must remember action, inserted text, visual selection, mode, size and the most recent count; notes Vim is ~1M lines of C and decades old. Uses an async Rust architecture and runs keystroke parity tests—Neovim and Zed replay identical key streams in parallel and any divergence is a test failure—Helix and Vimscript compatibility remain limited.
AI-written summary · about
chapters (11)
- 0:00Talk introduction
- 1:49Rewriting Vim in Rust challenges
- 4:37The magic of Vim for developers
- 8:53Bram Moolenaar’s legacy
- 10:17Vim’s :% commands decoded
- 14:07Zed’s Vim speed
- 17:43Q&A: Vimscript support
- 18:49Q&A: Testing Zed compatibility
- 19:10Q&A: Rust’s impact
- 20:11Q&A: Migrating from Vim
- 21:38Q&A: Key-binding hints
related talks
36mA Modern Editor Built in Rust
42mUpdate on Rust in Zephyr
51mA Collaborative Editor in Rust, WebAssembly and Vue js
41mRust Meets Zephyr: Building Safer Embedded Applications
41mWhy Rust and Zephyr Are a Good Fit
42mUpdate on Rust in Zephyr
26mOnivim 2: Re-Architecting for Performance
41mRust Meets Zephyr: Building Safer Embedded Applications
