I use spacemacs now, instead of vim, and I really really love it.
As the quote goes, emacs is "a great operating system, lacking only a decent editor", and the quote has a lot of truth. Evil (vim emulation in emacs) is that wonderful editor. Spacemacs really brings the whole thing together by providing a great out of the box experience, with the excellent discoverability coming from it's key-sequence popups. it also adds a decently-sized repository of "layers" which are opinionated configurations for languages and frameworks that you can just install to get productive in that language asap. Also, the fact that most of your vim ex commands are replaced with key sequences under spacebar is really quite nice. Changing over from vim could be done in one or two weekends, depending on how much of vim you use.
Most of all, emacs is an environment
while vim is an editor
. The difference is quite clear. Emacs has so many amazing packages and tools which vim simply doesn't. This comes from emacs running lisp almost to it's very core, while vim is an editor written in C with a small scripting layer on top with the considerably less-powerful vim script. For example, magit is an amazingly complete git layer on top of emacs, in spacemacs you use SPC g s to get to a status buffer with untracked files, unpushed/unpulled commits etc. From this you can use keyboard shortcuts to do many actions (c c for commit, F p to pull, l l for log, etc.).
Even more amazing is the tramp package, which lets you use the entirety of the spacemacs environment on a remote computer. For example you can open a dired (text-based file manager thingy) buffer on a remote machine and use exactly the same smooth directory editing you're used to remotely. Even more amazing is that magit works remotely without any setup. You can even chain complicated setups like ssh into this server, then use that to ssh into this other server, then use sudo, then enter this docker container. And then you're running emacs inside a docker container only accessible through a proxy bastion server just like that. Except that you don't actually have emacs installed in that container at all, and you can have as many of these connections into as many different places as you want. And literally all of these wonderful emacs packages *just work* as if you're editing a file locally. All of this magic is possible through emacs lisp being so much more powerful than vimscript.
I see spacemacs has a rust layer
, with completion and cargo integration and the like. Spacemacs has a large list of layers which are so easy to install, and are usually well documented so that you don't have to spend hours configuring your editor to get shit done. Compared to vim, i've gotten so much more functionaility and done barely any configuring compared to my 200+ line vimrc.
Oh, I nearly forgot another cool thing with emacs. In vim, if you want to open multiple windows for multiple monitors, you have to open multiple processes, which is really suboptimal. Yanks don't work across windows except for the OS buffers. You can't move tabs or buffers between windows, and if you edit the file in one instance, it will bug out in the other instance. In emacs, all your windows are attached to one central emacs process. You can have the same buffer open on multiple monitors in different places of the file, and edits synchronise instantly between windows. It's so refreshing for this shit to just work.
In short, vim is a tool but emacs is a world, and it's a world i'm oh so very happy to inhabit. PM me if you want to enter it too!