I recently switched from TextMate to MacVim. I had used vim and xemacs over the past two decades that I've been exposed to Unix system, but never put in the effort to really master them. I'd used various IDEs and editors, and was pretty happy with TextMate, but the long wait for TextMate 2 really showed me the importance of well-supported core tools; as a developer you can't get more core than your text editor and the emacs/vim communities are second only to Linux in terms of breadth and depth.
The reason I went with vim is because I believe it is as close to an optimal editor for arbitrary code and text as you can get. My first impressions were that emacs was about power through customizability, and vi was about raw efficiency. Customization is important, but personally I prioritize powerful editing slightly higher because it makes it easier to jump into new languages, and is particularly useful with sysadmin duties. Being skilled with vim pays dividends with every single new language I learn and technology I deploy, most of which are not important enough for me to invest in editor customizations. Now for my bread and butter language (Ruby/Rails in my case), investing in customizations is worth it, but even so, I will probably never go down the full-blown IDE road (unless the IDE is built around vim as a first-class citizen).
Not that I don't think true IDEs can't beat vim/emacs in productivity. It's relatively easy to become more productive in specific environments such as Visual Studio or IntelliJ, however that productivity falls off a cliff as soon as you leave the comfort of a properly supported language. At the end of the day, the promise of extreme productivity in producing reams of Java code is little comfort if I will be clumsy jumping into a language like Haskell where reams of code aren't necessary; I just don't want my incentives weighted that way.
Now as to the cross-platform issue, this is one of the most important to me, in large part because of the large number of servers I find myself logging into. However it's not just the MacWinLin axis, but also the temporal axis as well. Vim and emacs aren't going anywhere. They are too well-designed, and have too much mindshare to go away. Short of massive advances in AI and/or raw thought-input no one is going to come up with a more efficient general purpose keyboard editing than these tried and true methods. That's not to say that IDEs or editors like TextMate aren't bringing new advances to the table, but the best ideas will always make their way back to vim/emacs or vice-versa.
The learning curve of vim is indeed steep, and becoming fluent in its rich command set is a life-long project. That's okay because it's one of the few technologies that you can be sure will still be in widespread use 50 years from now. The cost of learning is heavily amortized and the interest heavily compounded. Overall it's the surest technology choice I've made since jumping from svn to git.