Why I'm using (Neo)Vim

Story time.

The interest in Vim started with me wanting to get things done fast. I was impatient and wanted to get things done quickly, so much that eventually I ended up getting injured by it.

The tasks at my team were getting repetitive. I like working on Frontend, but it was a lot of boilerplate. I felt like I wanted to just puke out all the things in my head onto the file, but the React boilerplate (at that time) was slowing me down.

I knew what I wanted to type, it was the same <div>, useState, export default and import statements. And all of these repetitive ctrl, shift, cmd combinations with the arrow keys and the mouse. But that's not what drew me to Vim. That was just my Need For Speed (™) 🚅.

Eventually, a pain in my arms was really starting to bother me. I went to a physician and he said I have an inflammation in both arms. So, among other things, I went on youtube like I always do to try and solve it. After a couple of useful phycisian videos, I stumbled upon a small tip for programmers.

(Don't worry, I still go to physiotherapy)

The tip was to try to use the keyboard as much as possible because that movement between the mouse and keyboard can really tire the muscle quickly.

That's exactly what Vim allows me to do. To stay on the home row longer. And as a side effect, it also keeps me in the flow of coding.

Of course, the best tip is to just let the muscles rest with breaks and stretches, and to take things more slowly. But, I thought, it wouldn't hurt to also improve repetitive movements aspect, among my posture etc.

Transitioning to Neovim

I was always the person to try and learn all the VSCode shortcuts, trying out all the extensions etc. I'm very much into developer tooling (DevX) and the likes.

The transition to Neovim wasn't overnight. At some point I installed the Vim emulation for VSCode, and after a week was half decent at it. But eventually I hit a ceiling. I was required to use the mouse more than I wanted.

I was consuming more and more Youtube content. I was getting familiarized with people's Neovim's configuration and I was applying the lessons into my own setup. Slowly over time, I got to feature parity with VSCode, and I was enjoying the process! 💖

The neovim customization journey continues to this day. I still tinker a lot and have a passion for it.

All in all, I'd say it took me ~4 months to feel like I was more productive in Neovim than VSCode.

The List

For those who want a simple list of reasons for Vim, this is it for me:

  • Ergonomics.
  • I like to tinker around and flesh out the little annoyances out of my workflow (productivity buff)
  • Staying in the terminal. The terminal is a powerful interface, and very few use it to its full potential.
  • Less thinking fatigue. I don't have to look around and click, everything is a shortcut I've optimized for me.
  • Vim motions - I was just tired of moving around with shift, ctrl, cmd and the arrow keys, it was just annoying.
  • Other less relevant nicities:
    • It loads instantly, and uses little resources. I can have 10 instances open and not feel it.
    • I feel like I'm faster

Is Vim For You?

  1. Do you enjoy tinkering with things and have fun spending time exploring?
  2. Do you want to iron out those little annoyances in your workflow?
  3. Do you care about productivity?
  4. Are you willing to invest time getting over the initial hump?

OR, do all these questions don't resonate with you and it just feels like a detour? If you prefer to just sit down, code and get your company's code shipped quickly, maybe Vim is not for you, and that's fine.

Resources

If you're curious to learn Vim or just see what I'm talking about, these are the resources that helped me.