spacemacs! I was a long-time vim+tmux diehard and now i'm all about spacemacs. Org-mode and Magit are just too good to live without. There were a few hurdles when switching, mainly around auto-indent differences that were harder to configure with emacs. (dtrt-indent ftw, thank god for that). Also the regexes are different and not as good (i don't think emacs regexes do negative lookahead etc...) so some of the advanced substitution wizardry i used to do isn't quite as good.
But overall i prefer Spacemacs to vim for general development.
I recommend using the develop branch of spacemacs. It sometimes breaks but if there is something broken it gets fixed really fast, whereas if something is broken on master then it sometimes stays broken for a really long time.
spacemacs is for vim users. No one who doesn’t use evil mode uses it. Also most people who use evil-mode probably use spacemacs.
Emacs keybindings are burned into my brain at this point, but if I had to do it again, I would probably go with spacemacs. I think modal editing is probably superior.
I don't use evil-mode (anymore), but I still use Spacemacs. I'm too lazy to configure everything myself (language modes, Helm, Projectile, Magit, etc) so I use Spacemacs as a starting point and load a bunch of extra ELisp on top.
I'd recommend Spacemacs (even if you're not using evil) if you're new to Emacs and want to see how different and powerful a fully customized Emacs is when compared to the bare-bones experience of stock Emacs.
Best bet is to just start from the beginning. My journey began with the emacs tour you get directed to the first time you start it up. With regards to muscle memory etc its a completely different animal to everything bar maybe the command line ...
A bit of advice: Emacs can do so many things (there’s a web browser included out of the box), but that doesn’t mean you should use it for everything. Despite the fact that “applications” within Emacs are usually better integrated than those outside of it, they are oftentimes fairly buggy. Emacs has a horrible case of featureitis, so I try to limit my usage of the bundled features that aren’t well-maintained, of which there are many.
As many others have suggested, take a look at Evil, the best Vim emulation for any platform. Just ease your way into it by replacing Vim, then some other CLI programs, then figure out when to stop when the Emacs version is no better than what you were using before.
Be sure to check Doom [1] as well. It's Emacs for « a stubborn vimmer ». One of its goals is to be fast and hacker friendly. It's a smaller community than Spacemacs.
Also, the default theme is fantastic along with great defaults for key bindings.
http://emacs.sexy/ points to a bunch of useful resources,
including an Awesome Emacs which points to a bunch more.
Tuhdo's tutorials feature a bunch of animated gifs about his use/setup, which is quite nice.
I haven't tried distributions like spacemacs or doom-emacs (which is lighter-weight than spacemacs, with fewer abstractions above emacs). I think emacs is software which benefits from being well understood by the user, to the extent of "if something breaks I can fix it".
My guess is that someone that has used vim for more than 20 years will never feel truly comfortable with emacs. I say this having started with emacs for a few years, and since switched to vim, now for almost 20 years.
Vi(m) is not just a set of key bindings. It is also a philosophy of text editing that is much more integrated with the command line. You cannot replicate it entirely in other editors.
I don't know what the state of vi(m) emulation was the last time you used emacs, but evil-mode is very comprehensive. About the only thing I missed when I made the switch was tabs; everything else either just worked as in vim or had a near-identical equivalent. I'm curious what you expect would be missing.
I've been using vim for many years now, with stints of using emacs here and there. I cannot stand evil-mode. If I'm using emacs it has to be with default key bindings. Why? Because evil-mode violates my expectations as to how vim operates.
It may be fine for a very casual vim user who wants to switch to emacs but it's too confusing for a vim power user. There are subtle differences that disrupt the flow of my muscle memory. One such example is the }{ forward and reverse paragraph motion. In vim, this is perfectly predictable and delineated by empty lines. In evil-mode, however, it's hooked into the major mode, so it's always changing behaviour as you switch between different file types.
I'm not saying this is bad advice, but as a vim expert I have a hard time with emulations messing up my flow. IMO if you want to use emacs it is worth taking the hit and switching to a whole new set of keybindings.
I 'switched' to evil mode about 2ish years ago and ported my entire .vimrc and all its quirks with no problem. There are some rough edges with some other modes not supporting evil by default where hjkl muscle memory can trigger functionality unexpectedly, but that is usually easy to fix. The only other thing you have to watch for is that emacs is overly strick about C-a b vs C-a C-b and this manifests painfully when using C-w l and friends to switch buffers. The easiest fix is just to bind C-w C-l as well so that you don't have to slow down your typing.
I have actually found it hard to go back to vim because emacs has been much easier to customize and many of the features I use routinely are no longer in my vim config.
Would you mind elaborating more about which particular emulations mess up your flow?
I use Emacs very casually, mainly just for writing in org mode with Evil, and have toyed with the idea of switching to it completely. But, if you could talk about the figurative holes you fell into as a vim expert that could help inform my decision down the road.
It has been a while since I honestly tried evil-mode, but there were a few categories of issues I remember:
1. Search/replace behavior - Not that it is better or worse, just that it is different.
2. Misc. ex commands. I don't remember specifics.
3. Plugin specific commands. Not really fair to bring up, but still part of my muscle memory.
Using vim keybindings with emacs has been way better then any other vim keybindings thing I've tried for other programs. And if there's anything missing you can customize it.