The Vim-versus-Emacs debate predates most of today’s programmers, and it’s outlived several generations of supposedly superior alternatives. Both are still very much alive, and understanding why explains a lot about differing philosophies of tool design.
Vim: Modal Editing as a Superpower
Vim’s defining idea is modal editing — Normal mode for navigation and commands, Insert mode for typing, Visual mode for selection. Once internalized, commands compose like a language: d (delete) + i (inside) + w (word) deletes a word from anywhere inside it, without touching the mouse or arrow keys.
:w " save :q " quit :wq " save and quit dd " delete current line yy " yank (copy) current line p " paste after cursor /searchterm " search forward ciw " change inside word :%s/foo/bar/g " find and replace across the whole file
Emacs: An Editor That’s Also a Lisp Machine
Emacs takes the opposite approach — rather than a small, composable command language, it’s a complete Lisp runtime with a text editor built on top. Nearly everything about it, from keybindings to entire subsystems (email clients, file managers, even games), is written in and extensible via Emacs Lisp.
The Real Answer: Both Won
Vim’s modal editing model was influential enough that it’s now available as a plugin or mode in virtually every modern editor and IDE (VS Code’s Vim extension, JetBrains’ IdeaVim). Emacs’s extensibility philosophy directly influenced how modern editors handle plugins and configuration-as-code. Neither editor “lost” — their core ideas simply got absorbed into everything that came after.
Learning Either One Today
If you spend any time in a terminal, Vim’s basics (insert, save, quit, and simple navigation) are worth learning regardless of your daily editor — you will eventually SSH into a machine where it’s the only thing installed, and knowing at minimum how to exit it saves real frustration.