Now that I have written about configuring Vim to make it interact better with Visual Studio, I want to take a moment and look at some extensions that seek to put Vim in Visual Studio.
The first, probably the oldest, is ViEmu. It was the first thing I came across in my quest to use Vim’s fluid editing for .NET development. At $99, it isn’t exactly dirt cheap, but I would happily have bought a license to have Vim in Visual Studio. As an added bonus, the $99 version also integrates into SQL Server Management Studio. So, I downloaded the trial beta for VS 2010 and installed it. The addition made Visual Studio so unstable, the results were astounding. Multiple crashes, out of the blue, with no rhyme or reason–except that when I removed ViEmu, it all stopped. Apparently, I’m not the only one.
If this were an open source project, I would have been sorely tempted to dig in and see what the problem was, but it isn’t. I simply won’t buy software that makes my development life miserable.
Later, I stumbled across VsVim, an open source project with very similar aims to ViEmu. So far, this has proven to be very, very nice. It detects conflicts between its keybindings and Visual Studio. The biggest signs of its overall youth (VS 2010 is the only version it supports, or ever has), is that there are many motions that are not fully implemented. For example, if you move the cursor over to an opening parentheses or brace in command mode, and type ‘d%’ without the quotes, you get an invalid motion error. In Vim proper, it deletes the parentheses and everything between them.
Looking at the project activity on GitHub, it looks like there is a good deal of activity, which is always a plus on these kinds of projects. The only real oddity is that the author cannot accept source contributions. I guess if anyone wants to make significant changes, they will have to fork it.
Overall, I am very happy with VsVim and am using it day to day. I still use gvim alongside it for those cases that I want to get full vim happiness (and, especially, when I am in familiar enough territory that I don’t need or want IntelliSense.