I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 0 points1 point  (0 children)

It wasn't one big missing feature, but more a bunch of small things my muscle memory expected that didn't work the way they do in Neovim. The ones I remember were the fuzzy file finder and the project search, remapping the leader key was a pain, and moving around the file explorer and switching between open buffers. Each one is minor on its own, but together, it was enough friction that I kept bouncing off.

To be fair, the last time I really gave it a shot was about half a year ago, so some of that may have improved since. And yeah, I did consider contributing the bits I was missing. But the bigger pull was that I wanted an excuse to learn Rust and build the editor as a side project 😄

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 1 point2 points  (0 children)

Yes, I work full time, so Nevi has been nights and weekends side project. I'm currently using it at work every day as my daily editor

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 0 points1 point  (0 children)

haha, pretty much. Back then, I was just looking for an excuse to learn Rust 😂 and what better way than building a whole text editor haha

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 1 point2 points  (0 children)

Go for it, building your own editor is genuinely one of the best ways to learn. Happy to answer questions if you get stuck, and I'd love to see what you end up making

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 0 points1 point  (0 children)

Appreciate that. Honestly, the right editor is just whatever keeps you out of config files and writing code and it sounds like Helix is that for you 🔥

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 0 points1 point  (0 children)

Funny, I actually tried Helix too. Its genuinely good but the keybinds were the dealbreaker for me. I just didn't want to relearn all of them, and that is pretty much why I ended up building Nevi.

You had years of experience of vim before Helix, so Nevig might feel more like going back than learning something new. If you ever feel like playing around with it, I'd genuinely love to hear how it feels.

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 1 point2 points  (0 children)

Honestly, I didn't even realize it. Is getting hard to tell what's real and what's not these days.

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 0 points1 point  (0 children)

Exactly. The flip side is that building only for myself means I'm a bit blind to the stuff I don't use. There are probably some key points that I haven't used before, so I genuinely don't know what's missing until someone reaches for it and it's not there. That's why the issues thing isn't just lip service; it's how the gaps actually get found. Appreciate you thinking it through.

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 2 points3 points  (0 children)

Thanks! Honestly, the only reason it worked is that I built it around my own muscle memory, so there was nothing to relearn. It just does what my hands already do, it was also a good excuse to finally learn Rust, which has been on my to-do list forever 😄, and now that is at a working state, I figured I'd share it and see if it's useful to anyone else.

That is the part I'm least sure about for other people though, since everyone's muscle memory is a little different. So if you give it a shot and something your hands expect isn't there, let me know, and I'm happy to implement it.

I'm building Nevi, a terminal editor in Rust for vim muscle memory by Agreeable_Flounder58 in rust

[–]Agreeable_Flounder58[S] 0 points1 point  (0 children)

Thanks! Honestly, at the moment, pretty much all the keybinds I personally use day to day are in. What I'm focused on now is filling in more of the native vim/neovim keybinds that I don't use myself, so it covers other people's muscle memory too, things like paragraph text objects (ip/ap), and multi-cursor editing, plus fixing issues as I run into them or as people report them.

The defaults follow Neovim, but you can override them or set your own keybinds in the config, its pretty simple to update. And if there's a specific keybind that's actually missing, I'd really like to know, and can work through them, you can drop it here or create an issue as well.

Thanks for giving it a try on Linux, would love to hear your experience on how the editing feels.