(My background is a few years with Visual Studio and other IDEs, then
15 years of Vim, and the most recent 6 months with Emacs.)
Longevity — Vim/Emacs are
FOSS,
and have have been around for decades. Their usage is not going to
decline, nor are their features going to break/disappear/change a lot,
so you can rely on building your whole career toolbox core around
mastery of just one editor.
Remote/ubiquitous access in terminals — Although both have fine
systems for editing remote files, you can also have them installed on
any system you ever log into.
REPL-driven development — Both have "SLIME" modes in various forms
that integrate whatever type of REPL you're working with. E.g., I've
never encountered iterative development as powerful as that provided
by CIDER (but hear that Emacs with Common Lisp goes even further).
Linting — Whatever language you're using probably has some
linting tools, whether built into
the compiler or an external tool. These integrate seamlessly with
Emacs/Vim, showing your coding slip-ups in near real-time.
Grammar of mnemonic commands — Although both take some time to
learn, these editors feature famously clever systems for accessing —
and even remembering — thousands of commands with a few keystrokes and
key combos. These can fully eliminate any need for using a mouse if
you're so inclined.
Built-in help systems — The offline documentation of many
languages and their APIs is common to find built into these editors,
and is accessible in similarly simple ways to the vast and
comprehensive help systems they feature. Auto-completion has been
added for most common languages. Additionally, there is a wealth of
discussion help on virtually any help topic.
Navigation — tags, paredit-likes, marks, windowing, tabs, vim-rails'
jumping,
and many more built-ins.
Package managers/repositories — Emacs has a few (elpa, melpa,
marmalade) and Vim's are good, too (vundle, pathogen,
etc).
I don't know of any communities around IDEs that offer anything
comparable to these. I see more than 5,000 packages with Emacs'
package-list-packages
.
Beyond just editing — Emacs goes farthest here with the ability to
read news, browse the web, manage email, edit spreadsheets, create
presentations, DB/Git/etc clients, and organize anything.
Integrated everything else — debuggers, browser syncing,
compiling, shells, test running.
Infinitely customizable — Elisp is a very powerful language for
extending/modifying Emacs. VimL is Vim's equivalent. There are books
written on both. Tweak color themes and behaviors to your delight!
Language Agnostic — Many GUI editors are tailored for a single language. Emacs/Vim are/can be suited for any language (now or future). Much of what you tune your workflow to for one language can be carried over to others. This also means your text editor serves as your document editor; nothing separate for Markdown, Org, HTML, TeX, etc.
Tunable — Wanna slim down the enabled features to be able to handle a million line file? Run on a monitor that displays 400 lines? You can turn off all sorts of things off to make it work.
Mouseless — Some folks find that avoiding the mouse can really speed up a workflow. Both fully support (and arguably encourage) never touching the mouse.