Skip to content

Commit

Permalink
fill out zmacs section
Browse files Browse the repository at this point in the history
  • Loading branch information
shaunlebron committed Jun 29, 2017
1 parent 26f0286 commit 0f596e5
Showing 1 changed file with 32 additions and 7 deletions.
39 changes: 32 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,37 @@ _See the 1987 [Lyric Release Notes] or [Medley Release Notes] in Appendix B, and
## ZMacs

ZMacs in 1980 is [reported](https://news.ycombinator.com/item?id=10548242) to be
the first text editor with balanced parentheses commands. The 1987 [ZMacs
Editor Reference] shows them on page 209 (3-137):
the first text-based editor with auto-balancing paren operations.

[![zmacs-screen]][zmacs-video]

When a cursor touched the outside of a list, the corresponding paren would
blink. This is a staple feature among all text editors today.

The primary paren commands are suggested to be those associated with the
simplest hotkeys:

| Hotkey | Description | with number arg _n_ |
|:---------|:----------------------|:---------------------|
| `CTRL-(` | find unbalanced paren | |
| `META-(` | wrap `()` forward | size _n_ (default 0) |
| `META-)` | move over next `)` | |

The others are run with `META-X` and by typing the full command (with the help
of auto-completion):

| Command | Description | with number arg _n_ |
|:------------------------------|:-----------------------------------------|:----------------------------|
| `META-X` "Close Definition" | inserts enough `)))))` to end definition | |
| `META-X` "Delete ()" | delete `(` and matching `)` | _n_ th innermost `()` |
| `META-X` "Grow List Backward" | move `(` backward over an expression | _n_ jumps (can be negative) |
| `META-X` "Grow List Forward" | move `)` forward over an expression | _n_ jumps (can be negative) |
| `META-X` "Make () Backward" | wrap `()` backward | size _n_ (default 1) |

To pass a number arg to a hotkey, do `CTRL-1`, `CTRL-0`, `META-(` for example to
wrap the next 10 elements in a list.

_See the 1987 [ZMacs Editor Reference] on page 209 (3-137)_

## Lispedit

Expand Down Expand Up @@ -378,28 +406,25 @@ General:
[DrRacket]:https://docs.racket-lang.org/drracket/editor.html
[Taylor Campbell]:http://mumble.net/~campbell/
[PILOT]:https://dspace.mit.edu/bitstream/handle/1721.1/6905/AITR-221.pdf

[LispEdit]:https://github.com/blakemcbride/LispEdit/blob/master/EDIT.txt
[deepdyve]:https://www.deepdyve.com
[Evolution of Lisp]:https://www.csee.umbc.edu//courses/331/resources/papers/Evolution-of-Lisp.pdf
[BBN Lisp System]:http://www.dtic.mil/dtic/tr/fulltext/u2/656771.pdf
[Interlisp Reference Manual]:http://www.softwarepreservation.org/projects/LISP/interlisp-d/3100186-Interlisp_Oct83.pdf
[History of Interlisp discussion]:https://groups.google.com/forum/#!topic/comp.sys.xerox/FKG8f1cnWvI
[Interlisp-D Reference Manual Volume II: Environment]:http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/xerox/interlisp-d/198510_Koto/3101273_Interlisp-D_Vol_2_Environment_Oct85.pdf

[dedit-screen]:https://user-images.githubusercontent.com/116838/27507672-6a6416ae-5899-11e7-9475-5704bb8933c4.png
[sedit-screen]:https://user-images.githubusercontent.com/116838/27450864-b4ffcf20-5752-11e7-90e4-1668709d0189.png
[sedit-video]:https://www.youtube.com/watch?v=2qsmF8HHskg
[Lyric Release Notes]:http://bitsavers.trailing-edge.com/pdf/xerox/interlisp-d/198706_Lyric/198706_3102434_Lyric_Release_Notes.pdf
[Medley Release Notes]:http://bitsavers.trailing-edge.com/pdf/xerox/interlisp-d/198809_Medley_1.0/400006_Lisp_Release_Notes_Medley_Release_1.0_Sep88.pdf

[An Introduction to to Medley]:https://archive.org/details/bitsavers_xeroxinter0AnIntroductiontoMedleyRelease2.0Feb92_9578080
[Medley]:http://top2bottom.net/medley.html

[LISP/VM User's Guide]:http://www.softwarepreservation.org/projects/LISP/ibm/SH20-6477_LispVMUG_Jul84.pdf
[ZMacs Editor Reference]:http://bitsavers.trailing-edge.com/pdf/ti/explorer/2243192-0001A_Zmacs_Jun87.pdf

[Experience with an Uncommon Lisp]:https://pdfs.semanticscholar.org/d15c/2d1a8d4b0086af487372504f50cbe9dbcae7.pdf
[Interactive program execution in Lispedit]:https://www.deepdyve.com/lp/association-for-computing-machinery/interactive-program-execution-in-lispedit-oIXwkiLVjG
[Nokolisp]:https://timonoko.github.io/Nokolisp.htm
[Paxedit]:https://github.com/promethial/paxedit
[zmacs-screen]:https://user-images.githubusercontent.com/116838/27672420-78d25b0e-5c60-11e7-9f19-511ee33b7a04.png
[zmacs-video]:https://youtu.be/o4-YnLpLgtk?t=48s

0 comments on commit 0f596e5

Please sign in to comment.