DEV Community

Cover image for I'm building Nevi, a Rust terminal editor for Vim muscle memory
anthony amaro
anthony amaro

Posted on

I'm building Nevi, a Rust terminal editor for Vim muscle memory

I’ve been working on a terminal editor called Nevi.

It’s a fast, Neovim-inspired editor written in Rust, and the reason I started building it is pretty simple: I wanted an editor that felt modern and fast, but still respected the Vim/Neovim muscle memory I already have.

I really like Neovim. It’s powerful, flexible, and I’ve spent years building muscle memory around it. But once your setup grows enough plugins and custom configuration, it can start to feel slower and harder to maintain.

I also really like Zed. It’s fast, clean, and modern. But for me, the Vim mode still does not cover all of the keybindings and editing patterns I rely on daily. That friction adds up.

Helix is great too, but it follows a different keybinding model. I respect the design, but I don’t personally want to retrain years of Vim/Neovim habits.

So I started building Nevi.

The goal is not to replace Neovim overnight. The goal is to build a fast terminal editor where common Vim/Neovim workflows feel natural out of the box, while still having modern editor features built in.

I use Nevi daily myself, so a lot of the work comes from real editing friction I run into while building it.

Some of what Nevi supports today:

  • Built-in LSP, tree-sitter highlighting, and external formatter support
  • Fuzzy file finding, live grep, file explorer, and git signs
  • Harpoon-style quick switching, floating terminal, and LazyGit integration
  • Themes, splits, TOML config, Copilot integration, and more

Nevi is still under active development. It is currently macOS only, and Linux/Windows support is something I want to work toward. Contributors are very welcome.

Right now, I’m especially interested in feedback from people who use Vim or Neovim regularly.

I’d love to know:

  • Which keybindings you immediately miss
  • Which workflows feel wrong
  • Which defaults do not match your expectations
  • What rough edges make it hard to use
  • What would make you willing to try it on a real project

You can try it from source:

git clone https://github.com/anthonyamaro15/nevi.git
cd nevi

cargo build --release 
Enter fullscreen mode Exit fullscreen mode
./target/release/nevi .
Enter fullscreen mode Exit fullscreen mode

I am building this because I want a fast terminal editor that respects Vim muscle memory, has modern features built in, and does not require a large plugin configuration just to feel productive.

If that sounds interesting, try it out and tell me what feels good, what feels broken, and what keybindings you miss.

Top comments (0)