← Back to Blog

Neovim my love and hate relationship

February 17, 2026

TechnologyDevelopment ToolsPersonal Experience

A colleague put my onto neovim a while ago, and I love it and hate it in equal measure

Neovim is the IDE of sorts but it’s a kind of fork extension of Vim the much loved and hardened editor wrapped in with most flavours of linux and other forked distros. Now Neovim is that editor on steroids. And using it’s LUA language is extendable to the absolute Nth degree and there lies my love and frustration.

Why I love it

I love it’s extensible nature. You essentially need a few core things installed and getting started I would suggest beginning here

This will kick you off and then all you need is to have some basic knowledge and the ability and want to learn. You will find yourself becoming quicker and quicker as you actively seek things out.

One of the reasons I love it, is it’s ability to override everything install many different things through it’s LUA language. Almost everything can completely be changed. You want a new shortcode, easy go into your config LUA file either set a shortcut up or change an existing one. You want to search and replace, thats fine write a little regex in the editor and run it.

Also with some of the fantastic already built plugins it can begin to feel less like a code editor and more like a control center. 3 quick taps on the keyboard connected to the DB. Two more taps on the keyboard and running the testing suite or the development server.

Why I hate it

Now for the other side of things why I hate it (Feel like I had to write hate here for the nice contrast, but it’s more like get frustrated from time to time). So firstly and not insignificantly, you kind of get to go “Oh, yeah I use neovim”. It’s childish and boastful, for almost no reason, but it does give me a little kick. But then also makes you feel a bit foolish. Especially if the person you mention it too asks why? I then proceed to say lots of things that can already be achieved in most IDEs anyway. The only difference here is you need to learn a keyboard commands.

Next on top of this, and this is not Neovim or LUAs fault but I don’t quite know it yet. I am definitely more comfortable than when I started. But like being your first year into web development and working Php. You know it and can work with it, up to the point you don’t know it. And then you really do get stuck. As Neovim's configs and extendability are all written in LUA I can very quickly reach points where I am getting errors I am finding it difficult to debug. The LUA API is quite extensive and can be intimidating.

I don’t plan to let this stop me however, I just plan to do more work on with LUA potentially building my own neovim plugin to further my knowledge.

My last sticking point is the terminology around Neovim, this just proves as a steeper learning curve than I initially thought. Things like Buffer and window. Now this makes some sense to me from previous development experience the buffer being a sort of temporary storage. But it extends onwards with Neovim and it’s plugins as the open “files” if you chose to have tabs in your neovim quite often each use separate buffers and then on top of this you can also use windows, which can contain it’s own buffers. This took me a little while to sort of understand with Neovim and the shortcodes.

Conclusion

I keep going back cause when it clicks it is just so so good! But the problem is when I am trying to do the odd thing I can’t work out how to and I know how to achieve in VSCode my previous regular IDE. I find myself switching back out of speed. Then staying in VSCode land for a little while before going back to Neovim.

I can of course work out how to do the exact same thing in Neovim, the only issue is the learning curve, because finding out how to do it and/or installing the relevant plugins or setting up the relevant shortcodes can take 30 minutes to several hours.