Falling in Love With Vim All Over Again
About about 2 years ago, I stopped using vim. I was sad, but didn’t think too much of it. I had just moved on from a job where I used vim full time. Unfortunately, it was in a language known as PowerBASIC. This language has very low adoption and there was no community tooling available. I had to handroll my own syntax and indentation files (I was able to steal from the BASIC files). I had no tags support and never felt like I really got to hit my stride despite using vim daily for over 3 years.
Starting in late 2011 I’ve been working primarily in Visual Studio. For the most part it is a great IDE with a lot of powerful features. Combined with the refactoring and productivity shortcuts available in CodeRush things still felt pretty nice. I tried using some vim keybinding addons but they were never as responsive as is necessary to work the vim way. In addition to no longer using vim at work my amount of personal development work had sharply declined. What little I did was done with Visual Studio. I started to forget how nice working in vim really was. Maybe it wasn’t really necessary, I thought. Especially not with tooling this powerful.
Then something changed. I decided to make a committed effort to learning web development. Instead of taking the obvious route of using ASP.NET I decided to go a completely different direction and use Ruby on Rails. I’m writing tons of code on in my free time and doing it all in vim. I’ve never been happer! The flexibility of Ruby is beautiful and expressive. And Rails, while sometimes confusing and magical, makes a lot of sense and helps you get things done. I’m working a ton in vim and loving it.
After being “lost” for so long vim has reminded me what a powerful really development environment is.
Power is the inverse of friction between creativity and expression
Big meaty IDEs lured me into thinking lots of features, integrated menus, and GUI tools were power. This is not to say that vim lacks features or power. It wants for neither.
Nothing else I have used has come close to vim. It has power that I have never had to pay for with my effectiveness or ability to express myself. Every time the big feature-rich IDE churns for a quarter second as it parses background files or does whatever the heck it thinks is more important than me typing I am jarred. Effectiveness drops. This aggregates over the day I find myself frustrated, distracted, and ineffective. Vim doesn’t do this to me.
Vim. I’ve missed you.