Vim. All the thrusting way.
The first time I log on to a server or environment that's new to me I do:
inoremap kj <Esc>
inoremap jk <Esc>
nnoremap <Space> i
And that's about what I need from vanilla vim.
I use it literally for everything... prose, latex, python, html, js, css, yaml, rest, json, c, cpp, config, whatever.
But I must say seeing elisp made me hungry for more...
I really HATE vim in terms of consistency in the UI. Every plugin does things differently. It's a mess. For instance, I work in windows, and I have 3 monitors. I want vim to open every buffer in or below current window, not at the bottom of the whole effing screen. Why can't this be done? Can this be done in emacs?