Moving On From Neovim

8/2025 | Aman Azad

I'm throwing in the towel.

I've been a nvim user for the past two and a half years and as of a few days ago that is no longer the case.

I settled on a frankenstein Nvim/Cursor/VSCode set up through this combo of keybindings and extensions.

Cursor/VSCode profile link here.

extensions

Chronicling how I got into using vim to begin with, the papercuts, and what I'm using today.

A few years ago I was working on pretty complicated piece of browser software, with many nested layers of abstractions. I was a VSCode user at the time, and cmd+clicking into function definitions worked when going deep into the code, but I didn't have tools to quickly jump back to the core changes I needed to make 5 files up in the tree. I still remember trying to scroll through all my open tabs, search through them, pin them, etc. Couldn't find an ergonimic work flow here.

That's about the time I came across the Primeagen and his video covering the Harpoon neovim extension. Harpoon lets you pin a handful of files, then quickly map them to some keyboard shortcuts. This felt like a pretty direct answer to the problems I was having with VSCode.

harpoon

I also remembered at one of my first jobs out of college and how quickly our CTO navigated through files and code using vim when we did some pair programming. Another strain of memory surfaced as I remembered as a kid playing Starcraft II and loving the tactile feel of having a high APM, or actions per minute. I played Zerg, and beyond the game itself, navigating between all the hatcheries with keyboard shortcuts was super rewarding.

starcraft apm

Imbuing daily work with a sense of tactile enjoyment greatly improves my mental acuity when working. Mechnical keyboard, mastery of shortcuts, quick file navigation hack into flow state incredibly quickly.

So all in, at that job I had I forced myself to learn neovim with nvchad as a base.

Took me all of two weeks to get pretty comfortable with all the main file shortcuts, won't rehash them all here, but in general all the classic vim bindings weren't too hard to learn as I did have some vim experience back in college. Almost immediately after setting up harpoon however, was I seeing massive improvements.

The mental load of working through large code bases and large files vanished. Between harpoon space + 1/2/3/etc, fuzzy searching across the repo space + f + z and my current file space + f + f, lines of code didn't matter. I started refactoring all my code to make it easier to grep for, both with function names and file names.

grep

And so for two and a half years this was my daily driver. The problem was though, throughout the two and a half years, I spent a few significant moments wrangling with LSPs, packages, and the other niceties I once had in VSCode. No more well formatted git previews, no more pretty views for images, markdown, etc. All this became increasinly more annoying to not have. Relying on open source developers who stopped maintaining projects (null-ls lol) really sucked.

vim rendering an image lol

I would continue to run into several random run time errors with lua, packages being out of date, etc. I don't mind ricing my set up, but there's a threshold of fun to not fun and I was not having fun for a good bit of time.

Also increasingly, I started having Cursor open for it's agent mode. While I was much quicker coding with nvim, I would still tab over and use Cursor's agent mode for those sweet AI generations. Using Cursor (aka VSCode) again, not seeing LSP errors, not seeing a flood of random runtime errors on my code editor, I thought to switching back over. After starting a new project and having an irreconciable difference between the project's prettier formatting, and my LSP's prettier formatting for the third time, I had hit my max limit of not fun.

lua errors lua errors

I spent maybe a day on figuring out my setup and I landed on the following extensions: Cursor Harpoon, FindItFaster, Vim.

These extensions, and some keybindings, essentially gave me the best of both worlds. I have the day to day dev experience of writing as if I was writing in vim, with all my keybindings and shortcuts and harpoons, but also no more LSP/formatter headaches I had with my handrolled nvim setup.

Also now, I don't have to tab over to Cursor to open up the agent mode which is a huge plus.