What is the best coding editor ? That's a question every dev has asked themselves at some point. And I have an answer for you : Neovim.
Ok now that's a hot take. But I'm not entirely joking by saying this. The truth is that the best code editor is the one that you love the most and that you can use well. I really think it's important for a developer to know its tools. If you want to use an heavy jetbrain IDE because you don't have to configure anything and it works out of the box, go ahead. If you want to use Sublime Text and donate to the foundation like you could with winrar, go for it. If you want to use a notepad with no syntaxe highlighting and no lsp servers, be a chad.
But I think there's a couple benefits to at least try and learn a bit of neovim as a developer. I actually see 2 major key points for using this editor.
- Vim motions : Neovim is the evolved version of an old software called Vim which was itself a fork of Vi. Vim motions existed before Neovim and can be used via a plugin in pretty much every code editors and IDEs that exist. So you have no excuses to not try this ! But are Vim motions ? In Neovim, to move around and edit text, you will have to learn and combine several keystrokes and shortcuts through different modes. Let's take for example basic motions and you will understand what I'm saying here :
- Moving left, down, up and right ->
h, j, k, l - Copying and pasting text ->
y / p - Go to a specific line ->
:32 - Moving forward and backward word per word ->
w / b
- Moving left, down, up and right ->
- Ecosystem : Neovim is the kind of editor that allows you to configure and customize pretty much everything that you want. Neovim is written in C, but is using Lua to manipulate and configure its ecosystem. If you miss, all your favorites VsCode plugins, I can assure you that you will find an equivalent (and even better ones) in neovim. Here are some of my must have :
- Telescope -> a highly extendable fuzzy finder over lists. Centered around modularity, allowing for easy customization.
- Undotree -> a plugin that visualizes your undo history as a branching tree. It ensures that you never lose a piece of code, even if you undo five times and then start typing something completely different.
- Fugitive -> a plugin (created by Tpope) that integrates git deeply into your editor following the Vim philosophy of being fast, modal, and command-line frendly.
Neovim can be really hard to get the hang of it. It will cost you some time to learn it. It will cost you productivity. But on the long run, you will become a developer that knows exactly what he's doing.
And you will also get to say : "I use nvim btw".
My config : Dotfiles