The Editor Wars: vi versus Emacs

For decades, Unix programmers have argued over which text editor is best, and two contenders dominate the dispute: vi and Emacs. The rivalry is partly serious and partly a running joke, but it has shaped how generations of programmers identify themselves.

The two editors come from different traditions and embody different design philosophies. Marshall Kirk McKusick’s “Twenty Years of Berkeley Unix” records how Bill Joy built vi at Berkeley as a fast, modal, screen-oriented editor, distributed with BSD Unix. In a separate world, Richard Stallman created Emacs at the MIT AI Lab; in his 2002 International Lisp Conference talk, Stallman explains that “the interesting idea about Emacs was that it had a programming language, and the user’s editing commands would be written in that interpreted programming language,” so that users could load new commands while editing.

That contrast set the terms of the argument. vi loyalists prize a small, fast editor with terse keystroke commands; Emacs partisans prize an endlessly extensible programmable environment. Each camp has long traded good-natured insults about the other’s choice.

The rivalry even acquired its own folklore in the free software community, where Stallman is jokingly styled as “Saint IGNUcius” of a mock “Church of Emacs.” The editor wars endure not because either side expects to win, but because the choice of editor remains a small badge of programming identity.