24 comments

[ 5.3 ms ] story [ 60.5 ms ] thread
ed is actually really handy in shell scripts when you want change something in a text file, and want to navigate in the text by following landmarks. Eg. if you are editing an .ini file the sed or awk methods are much more cumbersome, with ed it's just a couple of navigation commands and a in-place replace and save.

Plus you get to try things out interactively and then paste the working set of commands in your script. it's like sed with a repl, only better!

Example: https://groups.google.com/group/comp.unix.shell/msg/e823e275...

This is really cool, thanks!
That breaks if the file to include contains a line with just a ., unfortunately. But it's still ridiculously simple, and that's likely not to be a problem in a lot of cases.
But does it have syntax highlighting?
It certainly does. On my system, the whole syntax is highlighted a sort of off-white against a black background.
I can't get code completion to work :-(
Once you're done coding, the code will be completed.

That's all there is to it.

But does it have multiple cursors?
One for each term tab. Or tmux/screen session. How cool is that!?
You need 'ex' for that, if you can stand the bloat.
"* Ed now stops reading stdin when reaching real End Of File the first time. (Before it needed to reach EOF twice)."

Once? You've gotta be kidding. In older, hardcore versions, ed would BLOW RIGHT PAST your first EOF. It would say, "So long, sucka!" to your first EOF. It would assume you weren't serious with that first one, BECAUSE YOU WEREN'T.

What ed was looking for was EOT (end of tape). Because that was serious. When it saw EOF, it thought, "Oh, for fuck's sake. It's amateur hour." Now ed is apparently all about "user friendliness."

This is bullshit.

Thank you. You made my morning.
A great example of a joke which works in HN. Some don't but this one does. Thank you.
Made me look. Real ed(1) exits on the first EOF.

[1] http://www.tuhs.org/ [2] http://puszcza.gnu.org.ua/software/apout/

(EOT also happens to be the character you use to represent EOF; this was largely a joke, possibly referencing that "Ed is the real text editor" rant from decades ago that specifically discussed how difficult it was to exit ed as one of its many features. I found it funny.)
Yes, I know it was a joke. I just had to check that my memory wasn't acting up. (I actually had to use nothing but ed for real work for a few months in 1985 — makes for good training in regular expressions.) Real ed only requires two EOF (or 'q' commands) if the file has changed, so you don't quit by accident, but driving it by script won't hang.