ed is a powerful text editor based on non-visual (line-oriented) behavior, originally written by KenThompson for the early UnixOperatingSystem. Think of it as an ultimate form of non-WYSIWYG: instead of seeing some part of the text you're editing on the screen and making modifications into the seen version, you have separate commands for showing text, adding it, moving in it, changing it, and so on. The standard argument about vi, that you have to learn it anyway if you're going to rescue a Unix system sometime, applies double to ed: I remember some rescue disk with only ed, no vi. (Much in line with echo * as an ls replacement). As with vi, after some usage you might become quite fluent with ed.
There are also some environments where the line-oriented paradigm is the only option. These include environments where output of different programs continuously clutters your screen (MultiUserDungeons?, for example), terminals that have no positioning commands, and very slow lines (you don't want ncurses to refresh your screen on a 2400 baud connection every time you add a line, even if curses uses differential display).
These environments were once the norm for interactive computing. The original UserInterface to the UnixOperatingSystem was the actual ASR-33 TeleType, literally printing the user output line by line onto a roll of paper. Completely line-oriented and very slow. Other TimeSharing? OperatingSystems of the time, such as MulticsOs, had basically, or indeed exactly, the same UI hardware. Many of the early character-based video terminals didn't have the speed or the intelligence to do much better. But compared to entering your FortranLanguage program on a stack of HollerithPunchCards...
So "full-screen" character-based programs in the mould of (n)curses, NetHack and ViEditor (the "VIsual Editor") were impossible in the early Unix environment. This is one of the reasons why the classic Unix CommandLineInterface is indeed completely line-oriented. So the joke that "ed is the standard editor" is a HaHaOnlySerious reminder that even vi is a concession to GraphicalUserInterfaces, a deviation from the pure, uncompromising Unix way. ed was indeed the standard editor on early Unix, and most of the early Unix source code was written with it.
Incidentally, "visual" character-oriented interfaces are more fully integrated into the world of PlanNineFromBellLabs, BellLabs's intended successor to Unix. SamEditor? is the low-end standard editor on Plan 9: it has a visual interface and even mouse input. sam is now KenThompson's regular editor. Sell-out! :)
(Sources: mainly http://catb.org/esr/writings/taoup/html/ch13s02.html and http://catb.org/esr/writings/taoup/html/ch02s01.html#genesis (spot the teletypes!) from TheArtOfUnixProgramming.)
In addition to being one of the only line-oriented editors (ex notwithstanding), ed is one of the least friendly editors around. It does nothing without being asked to, its error messages are mostly '?', it does not offer help in any form, and it is not customisable. It is a modal editor, sometimes leaving you more lost than vi. However, I think it is easier to get out of ed than of vi if you got there by accident. (And you do get into vi by accident a lot.)
I think an enhanced ed, with some niceties like automatically showing the context of editing, could easily be my editor of choice. Also, I think the model of changing text should be rethought.
Here are some advice to get you going:
[the following part moved from EmacsVsVi]
From: firstname.lastname@example.org (Patrick J. LoPresti?) Message-ID: <1991Jul11.email@example.com> Sender: firstname.lastname@example.org (News system) Subject: The True Path (long) Date: 11 Jul 91 03:17:31 GMT Path: ai-lab!mintaka!olivea!samsung!zaphod.mps.ohio-state.edu!think.com!snorkelwacker.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!patl Newsgroups: alt.religion.emacs,alt.slack Organization: Massachusetts Institute of Technology Lines: 95 Xref: ai-lab alt.religion.emacs:244 alt.slack:1935 When I log into my Xenix system with my 110 baud teletype, both vi *and* Emacs are just too damn slow. They print useless messages like, 'C-h for help' and '"foo" File is read only'. So I use the editor that doesn't waste my VALUABLE time. Ed, man! !man ed ED(1)UNIX Programmer's ManualED(1) NAME ed - text editor SYNOPSIS ed [ - ] [ -x ] [ name ] DESCRIPTION Ed is the standard text editor. --- Computer Scientists love ed, not just because it comes first alphabetically, but because it's the standard. Everyone else loves ed because it's ED! "Ed is the standard text editor." And ed doesn't waste space on my Timex Sinclair. Just look: -rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed -rwxr-xr-t 4 root 1310720 Jan 1 1970 /usr/ucb/vi -rwxr-xr-x 1 root 5.89824e37 Oct 22 1990 /usr/bin/emacs Of course, on the system *I* administrate, vi is symlinked to ed. Emacs has been replaced by a shell script which 1) Generates a syslog message at level LOG_EMERG; 2) reduces the user's disk quota by 100K; and 3) RUNS ED!!!!!! "Ed is the standard text editor." Let's look at a typical novice's session with the mighty ed: golem> ed ? help ? ? ? quit ? exit ? bye ? hello? ? eat flaming death ? ^C ? ^C ? ^D ? --- Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity. "Ed is the standard text editor." Ed, the greatest WYGIWYG editor of all. ED IS THE TRUE PATH TO NIRVANA! ED HAS BEEN THE CHOICE OF EDUCATED AND IGNORANT ALIKE FOR CENTURIES! ED WILL NOT CORRUPT YOUR PRECIOUS BODILY FLUIDS!! ED IS THE STANDARD TEXT EDITOR! ED MAKES THE SUN SHINE AND THE BIRDS SING AND THE GRASS GREEN!! When I use an editor, I don't want eight extra KILOBYTES of worthless help screens and cursor positioning code! I just want an EDitor!! Not a "viitor". Not a "emacsitor". Those aren't even WORDS!!!! ED! ED! ED IS THE STANDARD!!! TEXT EDITOR. When IBM, in its ever-present omnipotence, needed to base their "edlin" on a UNIX standard, did they mimic vi? No. Emacs? Surely you jest. They chose the most karmic editor of all. The standard. Ed is for those who can *remember* what they are working on. If you are an idiot, you should use Emacs. If you are an Emacs, you should not be vi. If you use ED, you are on THE PATH TO REDEMPTION. THE SO-CALLED "VISUAL" EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE FAITHLESS. DO NOT GIVE IN!!! THE MIGHTY ED HAS SPOKEN!!! ?
The best thing about ed is it has this really useful visual mode. Just start it up and type :vi ... but don't try that on your 110 baud tty.
Hmm. Actually I'd really like a 110 baud tty - anyone know where I can get one these days?''
I was reminded of the famous "ed is the standard text editor" rant above when I saw on a colleague's desk a box bearing (among others) these words:
Mmm, now there's an idea: adding syntax coloring to ed... Perhaps we could also build a Lisp interpreter into it?
I am reminded of a published standard for a baby formula, and the Q&A generated when various mothers inquired if they could substitute honey for corn syrup, add vitamins, use skim milk rather than whole milk, and so on. The originator of this formula spent some effort explaining that the formula worked as it did because of the way it was formulated, and that messing with the ingredients would alter that formula. He concluded with this bit of pith: "You would also not add motor oil."
However, in keeping with the theme and spirit of "small and terse" I suppose I could let you add ... a Forth interpreter. -- GarryHamilton
BabelFish says: ¡El Ed es el editor de textos estándar!
Ed editor textorum probatissimus est -- Cicero, De officiis IV.7
Do people actually use ed anymore? On most computers, either ed is gone altogether, or it is a symbolic link to vi. -- Zydia, http://www.theatons.com/
Well, on my box, it is still a glorious stand-alone executable. Not that I use it ever... -- StephanHouben
I occasionally use it, when I am operating over intercontinental distances on a fairly slow link. Just like having a 32-bit colour, 21", 1600x1200 VT100 :)
By the by, ViEditor started its life as a visual mode for ed. If you don't have vim or some such installed, your link of ed to vi is in all probability a link of vi to ed; it will start up automagically in visual mode if envoked by that name.
At least on the free UnixLikes I've seen, ed and vi are separate programs. ed's size on my debian box is around 42k.
I thought ex (not ed) was the non-visual variant of vi. It is common for vi to be a symbolic link to ex or vice-versa.
The original vi was based on ex, which was an upgraded ed. Linking ed to ex wasn't uncommon, but it was never standard; ed and ex were different programs, and if some local installation didn't futz with things, there was always a separate standalone ed. On the other hand, ex and vi were not separate programs, they were two modes of the same program. It would look at its invocation name to determine whether to begin in ex-mode or vi-mode.
One can't be sure of any of the above in this age of ed-rewrites and vi-clones; it all depends on which clone and what that author felt like doing.
For instance, I cannot force vim to start in ex mode without it doing a vi-style screen-clear/init sequence, which screws up various open-mode tricks I used to do with the original real ex.
Note that Mac OS X has a standalone ed (and a real one too), but it seems a bit bloated (weights 111K)
Ed is the standard editor in Plan9. (Apart from acme and sam)...
I was just wondering ...
I came into the game late, and through a side door, so my first ED was the ED that shipped with CP/M rather than Unix.
One of the things I came to like about it was that you could address every single character in a text file, including the separate CR and LF characters. You could deliberately remove all occurences of either one. You could insert a second CR before every LF. Control was very granular, and made CP/M ED a character editor, rather than a line editor.
I actually wrote programs, manuals, and articles with this editor. During "the retail years" when I helped sell CP/M machines, I actually encouraged my customers to learn ED and become productive with it before buying any word processing software so that they would have a better understanding of what other software was doing with text.
Since the demise of CP/M, I've not been able to find a DOS (or *nix) implementation of ED that worked the same (sniff). I would be pleased indeed if someone knew where I could obtain a true CP/M ED clone.
[The ed you're talking about is essentially unrelated to the Unix ed, which was inherently line-oriented, and could not be turned into a character editor of the sort you describe. I don't remember any kind of "ed" under CP/M, but no doubt my memory has just faded (like someone else mentioned, I did use Wordstar a lot)]
It's not quote the same as CP/M ed, but TECO (TecoEditor) is a command line driven editor with character addressing.
If you're looking for a quick and dirty and small editor dig out your old floppy disks from stacker, they contained a real nice little editor called ED. I still use it with win 8.1 sunwukong.