Skip to main content
  1. Posts/

The 5 Stages of Vim: A Humbling Experience

·4 mins·
Vim
Table of Contents

As I start typing this post in my editor of choice (spoiler alert, it’s neovim), I can’t help but think about where I was just a few months ago. Blissfully ignorant and content in what I thought was the only obvious choice, VS Code.

To me, vim was something to check carefully for when copy/pasting commands. It had to be delicately replaced with nano or risk rebooting the server. I had no idea what it was or why anyone would use it.

Stage 1: Ignorance
#

VS Code is great, it had everything I could possibly want. And if it didn’t, there was an extension for it. I was familiar with the shortcuts and the interface, and I could run and debug my code with a single click.

My configuration was carefully curated, I had a theme that I liked, and I had a few extensions that I couldn’t live without. I was happy, I was productive, I was ignorant.

img

Stage 2: Curiosity
#

I started watching videos from a creator called ThePrimeagen - a charismatic and entertaining Netflix engineer who was clearly passionate about the topic. Watching him move so gracefully through a file, I couldn’t help but wonder if I was missing out on something. I was happy, I was productive, I was curious.

Stage 3: Denial
#

I decided to give it a try. I installed neovim, and opened up a file. I’d seen enough videos to know that I needed to start with VimTutor. So I did.

THIS IS AWFUL. How could this possibly be productive? You’re telling me that instead of clicking where I need to go, I have to spam hjkl until I get there? And what’s with all these weird commands? :wq? :q!? :wqa? This is ridiculous. I quit.

This cycle repeated itself a few times. Something would spark my curiosity or inspiration, and I’d jump head-first into Vim, get frustrated, and go back to VS Code.

I was happy, I was productive, I was in denial.

img

Stage 4: Embracing the Suck
#

I decided to give it one more try. I was going to stick with it, no matter how much it sucked. I was going to learn Vim, and I wasn’t going to give up.

This is always easier said than done. Really sucking at something is hard. It’s frustrating. It’s humbling. It’s uncomfortable. But it’s also the only way to get better.

Growing up, I was pretty good at most things I tried. Sports, school, music. Generally, things would come to me pretty easily. What I’ve noticed now that I’m in the beginnings of adulthood, is how big of an impact this has had on my adult life. If I don’t pick something up almost immediately, there’s a good chance I’m not trying it again.

This has led to missed opportunities, unfinished projects and a lot of wasted time. I’ve slowly started to realize that the things that are worth doing are the things that are hard. The things that are worth doing are the things that you suck at.

But this time, I was going to stick with it. I was going to embrace the suck. I was going to learn Vim, and I wasn’t going to give up.

I was unhappy, I was unproductive, I was learning.

Stage 5: Enlightenment
#

I’m not going to lie, I’m still not great at Vim. I’m still learning new things every day. But I’m getting better. I’m getting faster. I’m getting more productive.

I wrote my own configuration from scratch. I have a theme that I like. There are several plugins that I now can’t live without. There are things I’ve learnt throughout this process that I would have never feasibly come across if I’d stuck with VS Code. I have a greater appreciation for open source, and all the hard work that goes into maintaining the software that powers the world. Most importantly, I’m thankful to myself for sucking at something long enough to see the results.

I’m happy, I’m productive, I’m grateful.

Bonus Stage: Evangelism
#

It’s now 2025. I’ve now been “Vimming” for almost 2 years and it seems that this article has reached much farther than I ever thought it would.

Dr. Mark Ebbert, of the Sanders-Brown Center on Aging (University of Kentucky), recently reached out to me stating that he thoroughly enjoyed this post and has shared in with his lab. As per his recommendation, I’ve added a bonus stage to the 5 stages of Vim; Evangelism:

“I am the evangelist and my trainees have to listen to my sermons on how Vim will save them from mouse and arrow-key purgatory.
I have even been teaching a full lecture on Vim to undergraduate and graduate students for years.”

- Dr. Mark Ebbert

Here’s to many more converts, Mark! 🍻