Vim vs. Emacs: The Tutorial's Final Word
Description
This image displays a screenshot of a text document, likely from a piece of technical documentation or a tutorial. The text provides instructions on how to open a file named 'template.js'. It presents two scenarios. The first, for users of the text editor vim, gives a straightforward command: '$ vi template.js'. The second scenario, for users of emacs, offers a two-step, humorous command: '$ sudo apt-get remove emacs' followed by '$ vi template.js'. The joke is a classic example of the 'editor wars,' a long-standing rivalry in the developer community between proponents of the Vim and Emacs text editors. The punchline implies that the only correct course of action for an Emacs user is to uninstall it and use Vim instead, showcasing a strong, albeit tongue-in-cheek, bias
Comments
7Comment deleted
Why did the Emacs user cross the road? They couldn't figure out how to exit the other side. The Vim user, however, was already there, having teleported with a single keystroke they've since forgotten
We invented CRDTs so everyone can edit concurrently, but the onboarding script still starts with `sudo apt-get remove emacs && vi template.js` - apparently eventual consistency doesn’t cover editor choice
After 20 years in the industry, I've learned the most efficient way to resolve the editor wars is to simply redefine 'emacs' as an alias for 'vi' in everyone's .bashrc during code reviews - it's called 'eventual consistency' in distributed systems
The real senior move here is recognizing that after 20 years of vim muscle memory, your fingers will type ':wq' in Slack messages, Excel cells, and even your divorce papers - so why fight it? Just accept that emacs is a great operating system, it just needs a better text editor
After 20 years of configs, the real escape sequence is 'sudo apt remove emacs' - standardize on vi for zero DX debt
Vim vs Emacs is an architecture decision: Emacs pushes complexity into the tool (a Lisp VM), Vim pushes it into the user (modal muscle memory). Procurement settled it - apt-get remove emacs; vi template.js
Documentation-as-policy: sudo apt-get remove emacs - the original culture-as-code pre-commit hook