Random

Why I Started Using Nvim

Using Nvim has been a journey for me, but a rewarding one. I enjoy programming now more than I ever did. Every keystroke is a microdose of dopamine, allowing me to stay focused longer.

A few months ago, I went all-in. I am now using Nvim every day for several hours continuously. If I don’t have to write Swift or Java, I am using Nvim. It is that simple.

Like many other programmers, I started with VSCode. Eventually, I moved to JetBrains IDEs over time thinking that more would be better. I even tried Zed (with a positive experience). However, I always was intrigued by those programmers who could fly through code in a terminal. It sparked my curiosity enough to make try Nvim.

The main reason I am currently staying with Nvim is simple: it makes programming fun. I have noticed that I am now more focused on my work. Also, a huge benefit from using Nvim is that it makes you stay in the terminal. It pushes you to learn and get out of your comfort zone. Six months in, I am enjoying it more than before.

I enjoy writing when I am using Nvim, and I love the ability it gives me to customize my experience. It just lets me match my thinking process, and remove a lot of friction. The multi-modal approach and the motions make me feel like playing a video game. If these reasons are not enough, Nvim also helps me to confuse my coworkers.

Progressive Enhancements

Nvim is harder to learn than other IDEs, especially if you come from the GUI world. I did the worst transition possible, since I didn’t use Vim motions before switching. It was rough, and the learning curve has been huge (with a ton of other things that I still would like to learn). I might never be a Vim wizard, and that’s fine. The learning process can quickly become overwhelming with a lot of new concepts, plugins, options, and keymaps. Everyone has a different configuration, which makes the start a bit rougher.

My progression has been slow and difficult. Right now, I still use Nvim in a limited way. I identify a pain-point and try to fix it. If the pain-point is not evident, I keep my config minimal to avoid overloading everything. It helps me stay in control and learn the shortcuts progressively. Given the amount of things to learn, I believe that a progressive enhancement of the editor is the right way (at least for me).

If someone wanted to start using Nvim, I would recommend to start with learning Vim motions on your current editor. Once you’re comfortable, switching to Nvim will feel easier. If you’re not into spending hours to write your own configuration, you can start with a distribution, like LazyVim, AstroVim, LunarVim, or NVChad. If you’re up for it, you can just write your own configuration from scratch. I would recommend you to use kickstart.nvim for setting up the foundations. It will give a pretty barebones configuration, with just enough to be productive and not lose all the modern features you had in your last IDE.

PDE

The concept of Personal Development Environment fits perfectly. Building a Nvim configuration should be like building Lego. You start with one thing, use it, and adjust. The most important part is to use it, because this will help you identify pain-points in your configuration. Over time, you will spend time to fix these pain-points, and make your configuration fits perfectly your needs. Now that I touched the extensiveness of the customization possible with Nvim, I want all the tools I use regularly to be this customizable. It is both a delight and a curse.

Given the choice, I would not go back to a classical IDE, even with Vim motions. I have too much fun using Nvim, that anything else would become pretty boring. Also, there is no AI pushed down my throat. I am in control, and that’s a nice feeling.

I have seen a lot of programmers talk about the speed increase coming with Nvim. I don’t think that is a good argument. Nvim is not faster than any other IDE once you master it. You won’t be faster by using Nvim, especially if you are still learning Vim motions, and the basics. You can be faster in any other IDE, it depends on your will to master it. I do think that mastering your tools, or at least strive to master them, is the right thing to do. The customization helps with that.

Overall, like many hard things, learning Nvim has been a slow and highly rewarding process for me.

Vincent

  • Published on Aug 18, 2024
  • 3 min. read

Tags