I’ve been writing code for about 12 years. That’s just barely too young to have used pre-Windows tools when they came out and a bit too old to rely heavily on the drag ‘n drop features of Visual Studio. Now don’t get me wrong, I drop database tables onto datasets and use the toolbox when building WPF apps, but for the most part I’m using the text editor.
Visual Studio’s Intellisense really does give Microsoft a one-up in the market. There are other IDEs out there that can do C# popup syntax but not with LINQ and since MS owns the .NET platform, their tools are probably always going to be the most productive.
I have however used Emacs and VI a bit when I am on Ubuntu Linux. I never considered myself proficient by any means, but I could get in there and do some basic editing. I had always heard from older co-workers earlier in my career how great VI was but I never had the patience or desire to really learn.
Well I found this VI emulator addin (viemu) for Visual Studio by watching a how-to video on MSDN, I don’t remember the topic, and I’m loving it so far. The guy who sells it (it’s 79 bucks for the VS.NET addin, he has addins for outlook and SQL studio as well with optional bundle pricing) has a great article that makes the case for why you should bother learning this 30 year old editor. It’s a long read but convinced me enough to try it out for a weekend on a rails project I’ve been doing on the side under OSX first using MacVim. The fact that all the keys are laid out to never make you have to take your fingers off the home keys (no need for arrow keys or mouse) is a huge productivity boost.
I liked it enough to get the plugin for Visual Studio (haven’t bought it yet, but am using the trial to evaluate it). About the only thing it doesn’t do that the “real” VIM does is let you open new files and have them horizontally or vertically split with ones you are already editing. I find this to be really, really nice under the Mac version. Anyway check it out if you get a chance. The learning curve is high but I am hoping that considering how many hours of my life I will spend writing code, when the IDE doesn’t help and I’m refactoring and cranking away this will be worth the effort. It’s quite obvious that it so far. I really need to get better at regular expressions however!