I cannot believe it has already been 6 months since my first experience with vim. Today, vim has become an integral part of my development tools and I could not image working without it*. It marries perfectly with ReSharper in Visual Studio, it works quite well in vintage mode in sublime, and it rocks both in Windows and Mac when using vanilla vim.
So, here are the highlights of what I have learned over this period:
- Touch typing is important (thank you for stating the obvious Jaime). Practice touch typing deliberately and intentionally. Don’t look at the keyboard, don’t move the hands away from the home row. Touch typing is the biggest barrier to start learning vim, once you get over that, you are hooked.
- If you are a .NET developer, you can get great productivity improvements by using the most basic commands and motions. Also, the vsvim–ReSharper combo is awesome, you can use vim for micro editing and still enjoy of all ReSharper solution-aware macro refactorings.
- Learn how to read the documentation (and read it – use
:hin vim). The Getting Started, Editing Effectively and Tuning Vim sections make for great starting points.
- If you are going the path of vanilla vim, I strongly advise against using a ready-packaged distribution like maximum awesome. Vim is huge, to learn how to use vim effectively, you need to take things slow and go step by step, patiently growing and cultivating your
vimrcand plugins to suit your needs. If you use a ready packaged distribution you kind of miss the point – the journey –, and end up with a bloated vim with a bunch of plugins and customizations you have no use for.
- Don’t panic. Pick one new thing to add to your vim toolbelt every week and practice.
- Find other vim users. It is awesome to share tips, tricks and the love for vim with other like-minded individuals :).
Here is the presentation in all its glory: The Path To Jedi Text Editing With VIM
That’s all for now. I have been thinking about starting a series of vim from-zero-to-hero blog posts for .NET developers. I think it would be great for me and you both. :)
*Actually I do, when I work on my iOS game side project I do it on XCode and it is a pain in the buttocks