After almost a whole month of using MacVim, I think I can safely say I’m a convert. Whenever I felt I was getting really good with it, I’d switch over to SublimeText and realize I was still much better at moving text around and editing whole blocks of code inside of a GUI editor.

Today after editing some code, I flipped over to SublimeText to realize I wasn’t working any faster, and in fact missed some of the quick delete commands like dt" or D I was so used to with Vim.

It actually took a bit longer than I thought it would take. Luckily anything you want to do you can find fairly quickly with Google and StackOverflow. Many times I thought, “It sure would be nice if I could do x with a vi command” and sure enough I’d type into Google “vi how to x” and there would be quite a few results explaining how to do it.

The other nice thing that happened is when I do work on config files on my servers I am now EXTREMELY good at it. Before this month I’d “sudo vi” an important config file and at some point “:q!” because I’d hit the wrong key. Now it feels so comfortable I think it’s made me a better admin.

One thing happened I wasn’t expecting on my road to Vim: I am not actually using Vim. Instead I’m using something called Vico which has many vi key-bindings but an entirely new codebase.

Vico

You can also import tmBundles and tmThemes if there’s something from Textmate you want:

bundles

MacVim always felt like a half-step toward OS X (requiring the Janus distribution and a fork with a file browser to fill in the holes) where Vico is solidly an OS X app. For example, searching with ack brings up a nice window reminiscent of Textmate:

searching

But the most important thing is that it supports so much existing vi key-bindings that it doesn’t take long to go from (Mac)Vim to Vico. The only thing holding me back was the price: $39.99, but as the trial version was expiring I realized I wanted to use Vico past the trial date so I just bought it.

(Thanks to kob for pointing Vico out to me when I first started this project.)