Vim and I – A Love Story

Most of the time it’s bliss. Sometimes it’s prison. I’ve been with Vim for five years now and will never leave. The following is the story of how I was introduced to Vim, followed by the highs and lows of our relationship thus far.

The First Date

It was winter of 2008 and I had just started my first programming job. I was working inside of a small team for the Canadian Government on some internal web applications. At eighteen years of age, I was eager to be influenced. Struggling to learn quickly, I spent a lot of time with one of my co-workers Matty, one of the senior developers on the team; a wizard perhaps.

My jaw dropped the first time I saw Matt code. The cursor flew from word to word without hesitation. Entire blocks of text were manipulated with ease and fluidity. It wasn’t possible for me to map the activity of his keyboard to the output on his screen. It was unbelievable and elegant. It was Vim, and I was in love.

After Matt introduced me to Vim I couldn’t get her off my mind. I kept thinking back to the elegance, efficiency, and speed that Vim brought to Matt’s work. I had to learn more. I had to experience what Matt experienced.

Thus, my relationship with Vim began. I expected the beginning to be hard, but soon realized that my expectations were way off.

Rough Beginnings

A few days passed and Vim and I were starting to get to know each other. To my surprise, however, I wasn’t happy. Matty had warned me that it might be hard to get along with Vim at first, but I didn’t listen. Being so young, naive, and willing to learn, I persisted. Frustration ensued.

There was a lot that I didn’t like about Vim: Her insistence on moving the cursor with h j k l instead of arrow keys irked me, her different modes confused me, and her ignorance towards Ctrl-* shortcuts left me feeling lost and confused. In order to save a file, Vim must first be in normal mode. In order to edit text, Vim must be in insert mode. In order to select text, Vim must be in one of three (THREE!?) visual modes. She was relentless in her ways. I hated it.

Weeks passed by ‒ I persevered. Beginning to understand the requirements that Vim forced on me, my productivity started increasing. I began to understand the benefits of Vim’s ruthless restrictions. This understanding is what made me to continue. It gave me hope and motivated me. Without this drive to move forward, our relationship would have ended long before.

Seeing Other People

If you haven’t taken the time to fully understand Vim, you won’t know how different she is; I didn’t. After becoming comfortable with Vim I became curious about Android development. Unfortunately, developing for Android meant partnering with an IDE, not Vim. This felt dirty and I was ashamed. In fact, this was the first time I realized how invested in Vim I had become.

Switching to a different editor was horrible. I found myself repeatedly typing j and k while trying to move the cursor, along with forgetting how to copy and paste text. On top of that, my hands were getting sore from using a mouse more often again. It was bad.

Fortunately, I came across a plugin that emulated Vim’s personality in Eclipse. Vim was back, and I was happy again.

Final Notes

Vim and I have been together for five years; I still can’t believe it. For every passing year we become closer and learn more about each other and how to work better as a team. I couldn’t be happier.

Our relationship doesn’t come without it’s struggles though. For example, the inability to switch freely between editors is still hard to deal with, and hearing other people talk about how much better Emacs is than Vim infuriates me. I don’t fucking care how much you love Emacs, I love Vim and that’s all that matters.

And thus is the story of how my life with Vim began. I hope you enjoyed reading this as much as I enjoyed writing it.

Take care.

~ Gregory

vim story