What the hell is Neovim?
If you've started reading this post but don't know what Neovim is, it's basically a text editor based on Vim, but with some improvements. You can also use it as a full IDE, similar to VSCode, but with a different approach.
If you're wondering what the hell Vim is, well, it's a way to edit text files much more efficiently than using a mouse. It's a modal editor, which means that you have different modes to do different things. For example, you have a normal mode, where you can navigate through the file; a visual mode, where you can select text; and an insert mode, where you can write text.
If all this sounds confusing, don't worry—it's not that hard to learn. You can start by reading the Vim documentation, or by watching some tutorials on YouTube, and believe me, it's worth it. If you can take anything from this post, it's that you should learn Vim keybindings.
How it all started
I was a happy little VSCode user, living my life, writing code, and making fun projects. But occasionally, I got annoyed that I had to leave my keyboard to click the file explorer on the sidebar or to click on the search files icon. I know, I know, it's not that big of a deal, but it was seriously annoying me. Also, I didn't use VS Code shortcuts to open them because they were not that intuitive for me and conflicted with my Vim plugin keybindings.
Yes, I had been using Vim keybindings in VSCode for a while, and I would again say that they are a must-have in any IDE you use. I had been getting into the terminal a lot at that time and had also been looking at TJ Devries' Neovim setup guide, and I thought, why not give it a try? Over time, as a result of watching ThePrimeagen's (a famous Vim advocate and seasoned developer) videos and several other Neovim-related content, I became more and more interested in using Neovim as my main code editor.
Switching to Neovim
While I knew that there might be several consequences of switching to Neovim from VSCode as a newbie, I was willing to take the risk, similar to how a drug addict is willing to take the risk of trying a new drug. These things can be challenging; they demand a lot of time and mental energy, but I was a hell of a Linux user back then.
Over time, I started getting used to it, and did I forget to tell you that Neovim is also known for its extensive configuration options? That's the reason it's more than just a text editor or an IDE (Integrated Development Environment). It's a PDE (Personal Development Environment) that you can customize to your heart's content. Btw, you can check out my Linux dotfiles at dotfiles.
While the configuration might seem tiring to you guys, it's actually fun, and it took me less than a week to get a stable configuration that I could use for my daily coding needs. I also started using the terminal more and more, and I became increasingly comfortable with it. I also started using tmux, which basically allows you to create several terminal windows within one terminal window. There is hardly anything in this universe as perfect as tmux and Neovim together (smugs in satisfaction).
Switching back to VSCode
Over a period of time, I had a lot of fun. Searching files was blazingly fast!, going to function definitions was blazingly fast!, and moving up and down in files was also blazingly fast!. And yes, there was hardly any need for a mouse; everything has a keybinding set, all configurable and shareable.
You might be wondering why I would switch back to VSCode then, especially after investing a lot of time and energy into learning Neovim. Well, as we all know, I am not a Senior Developer (at the time of writing this post), configuring some parts of the editor seemed tough and I wasn't willing to invest the time into it.
While Neovim is very powerful, it's also very hard to learn and configure. There were some parts which I just wasn't able to configure properly. There were extra errors on my screen, and it felt painful. You can call this a skill issue (lol), but I would say that sometimes you gotta know when to stop and move on.
While VSCode is also not perfect, it's just much easier to get working by installing some extensions and getting started. It's also much more user-friendly and has a lot of features that I had to install separately in Neovim. But so is the case with Neovim. It's just that I am choosing the ease of setup and use over the power of customization and speed.
Melkey, a Senior Developer at Twitch, also made a great point on this: he doesn't want to look into the documentation for several plugins and their configurations, preferring the ease of installing extensions in VSCode without worrying about configuring or setting them up. Furthermore, as more AI tools are growing, it would be much easier to use in VSCode compared to Neovim.
Was it worth it?
For me, working with Neovim was definitely worth it. I learned a lot about how text editors work, how LSPs work, and more importantly, I learned a lot about VSCode as well—specifically, how it actually uses these same features, which allowed me to debug issues there too.
Both are super fun and useful tools. I would recommend that you try out Neovim if you're interested in learning something new and if you're a fan of terminal-based tools. But if you're looking for something that just works out of the box, and you don't want to spend a lot of time configuring or keeping your plugins updated once a month, then VSCode is the way to go.
It's all about getting the work done in the end. Neovim is the final sword, but you must level up your skills before you can wield it effectively.
Thank you for reading this post, if you found it valuable, please consider sharing it with your friends. And if you have any questions or suggestions, feel free to leave a comment below; I’d love to hear your thoughts.
Top comments (2)
Goodbye fella

Berry good 😃👍