Switching to Vim
Published Thu Nov 23 2017 14:03:00 GMT+0000 (Coordinated Universal Time)
Why I did itIt started with the classic situation of knowing someone at work who is some sort of Vim Jedi. I was in awe of his workflow since I arrived and soon decided that if I could dance around my code like he does I'd be able to achieve far more with every hour in my day. As I'm currently juggling a Masters, a part-time Software Engineering job, and going on more holidays than the average student, that seemed a nice prospect. Maybe I'd even find enough save myself enough time to start contributing to Mozilla, which I've been trying to fit in for a while!
Getting startedI started by getting hooked on vim-adventures - an online game designed to teach you all the Vim commands. It was odd, because I haven't played a video game for at least 5 years, but something about it was strangely addictive (maybe the fact that it wasn't group coursework?!).
The next step was to install vim-mode-plus for Atom (currently my JS editor of choice). Tbh I thought my Atom setup wasn't half bad - I was barely touching the mouse and was often editing more than 1 line of code at a time - but adding in vim features made me realise that I was actually missing out on a lot of handy shortcuts. Before long I'd ditched Atom for Neovim, enabled Vim mode in my .zshrc and installed Vimium
for Firefox as I wanted to use Vim everywhere.
Learning CurveA lot of people told me that learning Vim was a terrible mistake simply due to the learning curve. A lot of bloggers deemed their productivity in the coming weeks far too precious to invest time in increasing their productivity long-term, but despite my work-load and approaching deadlines I stuck with it. I guess I spent around a week at half speed as I found my way around and configured all the Plugins I wanted, and maybe I haven't yet even got back up to full-speed, but I'm getting faster every day. I've learnt a new, awesome tool which has changed my outlook on how code should be written. And so far I've only scratched the surface of what it is capable of. So, was it worth it? Hell yes!
My new workflowI've nailed working in vim now. With a few handy shortcuts (some from Vundle plugins, others self-configured, I'm racing around my code far quicker than ever before.
Here's my .vimrc file if you want to take inspiration.
I do have mouse-mode enabled, but that's mainly used to resize split views (yes, that's a thing vim can do in iTerm2)!