VSCode isn't anywhere near "open" enough (plugin APIs may be lacking). For example: the VSCode vim plugin is one of the worst of any major editor, while the Emacs version (Evil) is arguably the best implementation of vim period.

Atom is much closer to Emacs; nearly all the functionality is provided through optional packages, and it's very open to little tweaks to make it just the way you want.

Agreed. I use Evil exclusively (effectively pretending that I’m using Vim, except that I get to use the awesome features that Emacs has for programming in Lispy languages) and would love to start learning Emacs proper, except that Evil is so good that I really don’t need to.

Atom feels sort of like Emacs except that you have to deal with JavaScript instead of Lisp. I prefer using Elisp over JS, and Emacs is much faster, and Emacs works without an X server, and Emacs has a better Vim mode. Until one of the Electron editors can compete, I’ll stick to Emacs with Evil.

ViM user here who used SpaceMacs for a while for Clojure development.

I'm not sure if SpaceMacs uses evil but it's a similar concept. That being said, I tried learning regular Emacs to see what the fuss is all about and much prefer modal editing to pressing control constantly even with caps lock mapped to control.

Your mileage may vary but if you're already editing quickly modally and have all the features you like in Emacs I'm not certain there's much upside to learning how to do a lot of the same stuff the Emacs way.

Tmux plus tmuxp was a much greater improvement for me. Being able to restart iTerm2 for updates and maintain all my sessions, no rage after accidentally quitting a session, and writing short and simple tmuxp yaml files to launch a whole environment with one command is really awesome.

I enjoy the ViM mode in IntelliJ which I assume is similar to the one in Visual Studio Code, but mostly I prefer the terminal. Everyone loves VS Code that's for sure, so they must be doing something right!

I'd probably actually write plugins for ViM if it used Lisp and in a way I'm kind of glad I don't want to learn ViMScript as I've already spent so much time over the years playing with my vimrc as it is.

Spacemacs does indeed use evil.

I found Spacemacs to be great starting point for someone new to Emacs, but after a while I highly recommend extracting your workflow from Spacemacs to vanilla Emacs.

Thanks to use-package[1] (that Spacemacs also uses), most of the extracting would be just copy and pasting things from Spacemacs repo. The hardest part would be figuring out which package is responsible for which functionality. A starting point would be just put this in ~/.emacs.d/init.el:

    (require 'package)
    (setq package-enable-at-startup nil)
    (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))

    (package-initialize)
    (unless (package-installed-p 'use-package)
      (package-refresh-contents)
      (package-install 'use-package))

    (eval-when-compile
      (require 'use-package))

    (use-package evil
      :ensure t
      :config
      (evil-mode t)
And now you got a working vanilla Emacs with evil auto-installed, ready to be put in VCS. After extracting work is done, it will open up a new world of customization (even a low-level things such as replacing package.el with straight.el[2] to enjoy configuration reproducibility) as you now know exactly how every piece fits together. :-)

[1]: https://github.com/jwiegley/use-package

[2]: https://github.com/raxod502/straight.el