Switching form Textmate to VIM

Or how i learned to stop worrying and love the command line

For many, many years, I have been happily coding in Textmate. A program that hasn't seen any upgrades for a long time. That is, untill the version 2 alpha was released just before christmas. However, this post isn't about really about Textmate, it's about how I turned to the dark side, installed VIM, and for the first time in in atleast 5 years, learned how to use a new text editor.

Now, let me just get one thing straight, I still love Textmte. It's an amazing tool that has served me very well for many years. It's excellent bundle support has made always to the rescue when i've need them. I've used Textmate everyday for most of my career, and I'm sure i'll continue to use it everyday.

So why switch to now? and why switch to VIM? why not SublimeText2? well, I have actually been using SublimeText2 over the past 2 months, and have been very impressed with it. It's quick, supports Textmate bundles and looks beautiful. It also has a command mode, called vintage, which behaves a lot like VIM. With SublimeText2, i thought I'd found the perfect middle ground, Textmates style, and VIMs commands, a very active development cycle and community. But, whilst using SublimeText2, I noticed that I was using the command mode more and more, and quite liking it, but not liking the limitations or a half baked emulation of VIM. So, one day, last week, i just thought, why not switch to VIM, full time, personal and professional … and cold turkey!

First things first … Installing VIM

I should also point out that I'm using Mac OS 10.7, so these command will all be very mac based, and will probably make assumptions like you already have things homebrew installed.

The easiest and safest option is to download the latest version from https://github.com/alexlovelltroy/macvim/downloads, this will have all required bits compiled, as well as using its own UI, it also has familier keyboard shortcuts.

The next step that everyone will tell you to do is to install Janus (https://github.com/carlhuda/janus). Janus is suite of VIM plugins that gives VIM loads of Textmate style functionality. So, I installed Janus, and basked in the glory of using familiar commands in my new VIM editor.

But I quickly realised that VIM is not textmate. My coding habits and Textmate familiarity just dont make sense with VIMs command based input. Janus is good if you want everything done for you, but it also does a lot of other stuff you probably dont want or need. This adds a lot of bulk to what is supposed to be a really light text editor. For me, Janus just doesn't make sense. I want to learn and use VIM the way VIM is supposed to used, not try and get VIM to work like Textmate. If i wanted Textmate, then I might as well have stayed working with Textmate! Janus showed me a lot cool things, but ultimatly it had to go. I want to make VIM fit me perfectly, not make me fit someone elses idea of what I should use.

Right now, I'm using a bare bones basic install of MacVim. the only plugin I have installed is Pathogen, which is a plugin management tool. As I code, I'm sure I'll be installing more plugins, but until I feel I realy need them, I'm quite happy to learn the core tools of VIM, that way, I'll be better actually using VIM, keep VIM lean and quic and only install things that i'll actually use.

About the Author

Phil Balchin is a full-time software developer at Heroku (a Salesforce company) and part-time photographer living in Guildford, Surrey, UK. Specialising in software development and photography, Phil also writes about graphic design, personal productivity, and travel.