Are there any reasons why a C# developer should learn Emacs/Vim?
Begin the flame war :)
I'm a VIM addict and not ashamed to admit it. I find that using VIM makes me significantly more productive in my daily life. Coding is a lot faster when you don't have to take your hands off of the keyboard.
By default VS has poor support for VIM bindings. However, there is a cheap add-in available (ViEmu) that provides excellent VIM keybindings for Visual Studio. I have a personal license and I believe it was worth every penny.
That being said there is a steep learning curve associated with VIM. It will in all likelyhood kill your productivity for a week or two. After that though, the benefits will start coming and you should notice a boost in your productive powers.
I work in a 90% Microsoft shop, but I still use gvim every day. I have a vi plugins for every IDE I work with. I'd recommend vim if you are going to learn one or the other, but I know emacs users will strongly disagree.
emacs and vi have been around for a long time, and are both very powerful. Learning one of these might open your eyes to a more efficient world of coding.
I also work for a Microsoft only shop, but, at home, I only use Linux. Suffice it to say that I use Vim exclusively for editing at home. At work, I use Visual Studio for all development, but I use Vim for many tasks that require complex text manipulation. Even if I didn't use Vim at home, it would still be incredibly useful to me for what I do at work. Our IT guy thinks I'm some sort of magician when he sees me doing my Vim acrobatics. That's got to be worth something, right? ;)