Why I am reconsidering neovim
So as readers of this blog will know I am an Gnu Emacs and have been for quite a while. In particular I am a huge fan of the features opt in rather than opt out philosophy compared to fully feature IDEs and in some cases text editors. Also I like that I can get Emacs to adopt to my work flow and not the other way around.
Now, this is not to say that I have not dabbled with other text editors. I have had my time with Visual Studio Code, the now dead Atom, Vim, and others. But I always returned to Emacs for the simple reason that I found something I did not like. With Visual Studio Code in particular I have issues with how it splits panes, some of the keyboard bindings are insanely difficult to remember AND TAKE THAT FROM AN EMACS USER!, and the crazy amount of resources it consumes without any plugins (besides the default once) is simply insane.
However, with Vim it was more a case of I couldn’t get use to the default key bindings, which I like to stick with in the beginning of using a text editor and then do the customisation later. Also I had few issues with using in for C++ development, which I find out last year was actually down to me using really bad plugins. But, one thing I could never get past with Vim was the syntax for configuration. I simply dislike it. Whilst Emacs use Emacs Lisp, Vim uses something called Vim Script and I really find it weird and not nice.
However, some years back, I believe it was in 2015 Neovim was released. It is basically Vim but more modern and what is more important is that it use Lua for configuration instead of Vim Script. I do not particular enjoy writing Lua, but I find it more enjoyable than both Emacs Lisp and Vim Script. This alone have actually made me consider neovim as potential to dethrown Emacs in the land of editors for.
So back in 2022, I actually gave it a serious try.
At home I would only use Emacs for writing on my books as these at the time was only in Org Mode and I did not have the energy nor the time to morph them into something else, but for everything else I would use neovim.
I had the initial issues with the keybindings, but I found a pretty good cheat sheet for it and after about two months I was competent enough to no longer need it.
However, I ran into some issues with plugins for C++, C, and Python development with regards to LSP integration.
One of the issues was simply that neovim did not seem able to recognise when a file was C++ and when it was C, even if I used .cpp
and .c
and had this configured recognisable in my configuration.
So why on earth would I reconsider using it? Well after I started my current position, I got a colleague whom is a firm believer in neovim and have helped get over some of the issues. Which now makes neovim usable with Python for me at least, but I still have some issues with C++ which I need to hazel out. But I can see how easy it is for him to develop in C++ using neovim so I believe there is hope.
I may or may not document this. But Emacs be warned!
I still love Emacs and it will take a lot to get me away from it. So neovim will have to put up a fight. But let us see how it will go.
./Lars