Japheth Obala

Software Engineer


Learning Vim

I started using Vim to look cool but kept using it for its simplicity, speed, lack of distraction and how it feels like an extension of my psyche when using it. The editor has acquired taste properties and when you go Vim you never go back. This article is about my ups and downs mastering Vim.

I came across Vim around the same time I was starting out as a programmer in 2014. A friend was helping us with Ruby and told us about Vim so later that day I searched for tutorials but gave up almost immeadiately because it felt too complex. I encoutered Vim again two years later at Andela. I struggled with it for a few weeks then realized that if I was to get better at Vim, I needed to get better at touch typing. I was driven by vain reasons, I wanted to be cool.

Touch-typing is a gift that keeps on giving and I learnt it by setting aside five minutes every morning to practise and then force myself to touch-type for the rest of the day, within a month I could type whole paragraphs with my eyes closed. This is one of the most useful skills I have learnt and I can’t recommend it enough for developers and anyone whose job involves typing.

With typing out of the way, I gave Vim another shot and as they say third time is a charm. I was better at editing files but I still couldn’t use Vim for work because I didn’t know what plugins to use or how to configure them. I didn’t want to go down the rabbit hole and learn Vimscript so I searched for ready-made configs and settled on awesome-vimrc which enabled me to use Vim as my default editor for work, play and everything in between! I learnt alot about vim configurations by studying the configs awesome-vimrc had setup.

After sometime I noticed that Vim would take a noticeable amount of time to start up and I figured it was because of the many plugins that awesome-vimrc had installed and I probably wasn’t using anyway. So I decided to start configuring Vim from a blank .vimrc and adding plugins and configurations on a need to need basis, using awesome-vimrc’s config as reference. This was an enriching exercise because not only did my Vim become faster, I also learned a lot in the process.

I have been using Vim for a little over four years now and if you are considering learning Vim I strongly encourage you to try it, it is an investment that keeps on compounding.