I got #linux 7.2 booting on my #Palm IIIxe and #Handspring #Visor! #nommu now to get my graffiti workalike working properly. (The stowaway keyboard works great for now. #ed is perfect on the 32x20 char fbcon) #busybox #buildroot. (See https://github.com/jsmemfault/uclinux)
@aartaka I tried ed(1) today and didn't hate it, what have you got me into!! ![]()
ed +2 quotes.txt
.
HACK THE WORLD!!!
A Tutorial Introduction to the UNIX Text Editor, by Brian W. Kernighan
Some delightful notes from @thalia on recent #unix V4 adventures including using ed(1)
https://github.com/thaliaarchi/unix-v4-demo/blob/main/README.md
My workshop at LRC on playing with UNIX V4 was a great success!
Everyone loved the teletype and terminal. In the manner of the day, I gave manuals to teach the system and ed (@ed1conf), and we now have a cohort of new ed users. A few groups solved or got close to solving my challenge of backporting the obfuscated mullender.c program from V7 to V4. Surprisingly with a dozen or so people on at once, UNIX handled the load fantastically.
So I wanted to share with you this little project of mine. I delved into "retro-necromancy" and reanimated one very old UNIX utility called ile written by Robert Pendleton in 1988. I found it on one of the Walnut Creek source code CDs from 1994.
What it does is simply works like an input line editor (hence ile) for shells and programs that do not support interactive line editing. To put it simply, it adds Emacs-style keybindings like ^A, ^E, ^K, ^U and so on and command history that you can easily navigate.
Of course, these days it's hard to find a shell that doesn't support line editing.
But this little tool can still be usable, for example, with ed. It's nice to have Emacs-style editing in ed.
It can work like shell replacement or just run like a "middleman" between any given program. It respects terminal settings and doesn't get in a way. Keybindings are configurable.
Needless to say, the code from 1988 wouldn't run on any modern system. It was written in K&R style because there was no ANSI C standard yet! And #UNIX was quite a different beast back then.
So I ported it to modern systems, rewrote outdated bits (like sgttyb ioctls and brutal utmp handling).
Currently it builds and runs on #Linux, #OpenBSD, #FreeBSD and #NetBSD. Hopefully without too much bugs.
You can find it on Codeberg:
https://codeberg.org/chesheer/ile
(initial article brought to my attention by @kickingvegas here:
https://sfba.social/@kickingvegas/116806774552300712 )
Apparently #Emacs has a builtin/plugin "run a program at a given time" functionality.
Fortunately POSIX already provides an at(1) command so if you find yourself editing in ed(1) and want to schedule a task:
$ ed file.txt
3141
! echo "play alert.mp3 | at "+20 minutes"
If your tool expects X running, you can set $DISPLAY as part of the command:
! echo DISPLAY=:0.0 xeyes | at noon
or
! echo DISPLAY=:0.0 xmessage "Go home" | at 5:00pm
⸻
NB: on some systems, the at(1) processing gets launched by a cron job that runs every 5 minutes, so you might not have more fine-grained resolution down to the minute.
Congratulations to the #Emacs folks on the imminent release of version 31.
Keep it up…someday you'll get it feature-complete and not need to keep pushing new releases. ![]()
Reading @mwl's #EdMastery and taking notes in VSCode:
ka -- set a mark "a," equivalent to vi ma
*,n
1 = -- display the number of lines in the file
2 .= -- display the current line number
3 ; -- same as .,$
4 -,+p -- display the current line with a single line of context before and after
5 z3 -- display the current line and three more
6 2z2n -- display line 2 and two more, with line numbers
7 ka -- set a mark "a," equivalent to vi ma
8 'a,'bn -- print lines with line numbers between marks "a" and "b"
*1,3s/-- /--/
*,n
1 = -- display the number of lines in the file
2 .= -- display the current line number
3 ; -- same as .,$
4 -,+p -- display the current line with a single line of context before and after
5 z3 -- display the current line and three more
6 2z2n -- display line 2 and two more, with line numbers
7 ka -- set a mark "a," equivalent to vi ma
8 'a,'bn -- print lines with line numbers between marks "a" and "b"
*w
415
*
Did I say VSCode? psyche!! I meant #ed, of course! 🤣
The premier conference for ed(1), the standard text editor. Accessible at 300 baud.
Pronouns: it/its