Posted: May 19, 2012 7:16 pm
by lpetrich
Does anyone know much about the great war of vi partisans vs. emacs partisans? I've read about it, but I've never been caught in its crossfire.


For those of you not familiar with vi or emacs, they are both text editors that create ASCII-art GUI's. I call it that because they run on a command line, while sending "escape sequences" that make the cursor jump around and do other formatting things. These work on many of the earlier display terminals, and these work on command-line software for full-scale GUI systems.

It's possible to have a pure command-line text editor that does not make an ASCII-art GUI, and I had gotten started on some of those.


vi has a feature that I've seen in no other GUI text editor: its dual mode. It's either in edit mode or in input mode. When in edit mode, keystrokes get interpreted as editor commands, like h j k l for moving the cursor one step in each direction. But when in input mode, keystrokes get inserted into the text.

That confused me terribly, and I remember doing all my editing on a machine with a nicer text editor, then sending it over to that vi-using machine.

emacs has single-mode editing, always being in input mode, but being able to accept many editing commands. However, some commands make one use a command line at the bottom, so it's somewhat multimodal. Several other ASCII-art-GUI text editors, like vi, also have that feature, because it's useful for entering file names.

Most other ASCII-art-GUI text editors that I know about are like emacs in being primarily single-mode. pico, nano, VMS edt, VMS eve, ... All the fullscale-GUI ones that I've ever used are also single-mode, except for fullscale-GUI versions of vi. This includes every editable text area that I've ever edited.


So what's the fight all about? From the outside, it looks as if the winner is emacs-style single-mode editing. Or are there some other issues in this great fight?