EINE late-1977 keybindings and commands
This is a complete source-profile inventory of EINE's initial main, Control-X, named-command, recursive-minibuffer, EDT, Help, and mouse dispatch trees. It covers the fixed tables in etable.34 and every dynamic shadow found in the selected 19-module recipe. It is not a claim about every EINE version or a session after a user has installed commands. See the EINE system article for architecture, features, provenance, and the current runtime-verification limit.
Notation and counting boundary
C-,M-, andC-M-mean Control, Meta, and Control-Meta.Line,Form,Return,Tab,Rubout, and the arrow names are physical Lisp Machine key characters, not host-PC key assumptions.- Every lowercase letter in a modified keyboard row is explicitly made an alias of the corresponding uppercase slot. The tables below show the uppercase spelling once.
C-0throughC-9,M-0throughM-9, andC-M-0throughC-M-9are ranges generated by the table initializer.- Blank source slots are intentionally omitted.
C-.is blank by design and reserved for user installation. - The mouse table calls its physical indices button 0, 1, and 2. This page keeps those evidence-backed numbers instead of guessing a left/middle/right mapping.
The exhaustive denominator is 576 main-table cells (263 direct, 78 aliases, one prefix, 234 unbound), 576 Control-X cells (19 direct, 104 aliases, 453 unbound), 53 named extended commands, and 27 mouse cells (23 direct, 4 unbound), plus the seven distinct cells shadowed by the two recursive-minibuffer contexts and the six-cell EDT overlay. A binding whose target is absent from the exact 19-file build corpus is shown as a binding and labeled missing; it is not silently promoted to a working feature.
Unmodified characters
| Input | Command | Effect |
|---|---|---|
character codes 000–177 octal |
Self Insert | Insert the typed character. This source treats the full unmodified printing/SAIL character range uniformly. |
Backspace |
Self Insert | Insert the Backspace character rather than deleting. |
Tab |
Indent For Lisp | Indent the current Lisp line. |
Line |
Indent New Line | Insert a new line and indent it. |
Form |
Complete Redisplay | Redraw the editor display. |
Return |
Insert CRs | Insert one or the numeric-argument number of returns. |
Rubout |
Rubout | Delete backward. |
Control bindings
| Input | Command | Effect |
|---|---|---|
C-Down, C-N |
Down Real Line | Move vertically down one displayed/real line. |
C-Up, C-P |
Up Real Line | Move vertically up one displayed/real line. |
C-Left, C-B, C-H |
Backward | Move backward by characters. |
C-Right, C-F |
Forward | Move forward by characters. |
C-Space, C-@ |
Set Pop Mark | Set the mark or rotate the saved-point stack according to command state. |
C-(, C-< |
Mark BOB | Put mark at the beginning of the buffer. |
C-), C-> |
Mark EOB | Put mark at the end of the buffer. |
C-- |
Negate Numeric Arg | Negate the numeric prefix. |
C-/, C-? |
Self Document | Describe a command character. |
C-0 … C-9 |
Numbers | Accumulate a numeric prefix. |
C-= |
Print HPos | Report the horizontal position. |
C-A |
BOL | Move to the beginning of the line. |
C-D |
Delete Forward | Delete forward. |
C-E |
EOL | Move to the end of the line. |
C-G |
Beep | Signal an invalid/canceling command state. |
C-J |
Change Default Font | Select the insertion font. |
C-K |
Kill | Kill text from point using the line-oriented kill behavior. |
C-L |
Complete Redisplay | Redraw the display. |
C-O |
Make Room | Open space/newline without ordinary point movement. |
C-Q |
Quoted Insert | Read and insert the next character literally. |
C-S |
Char Search | Search for a single character. |
C-U |
Quadruple Numeric Arg | Start or multiply the numeric argument by four. |
C-V |
Next Screen | Move forward by a screen. |
C-W |
Kill Region | Kill the active region. |
C-X |
Control-X Prefix | Read the next character through the prefix table. |
C-Y |
Yank | Insert the current kill-ring entry. |
C-Z |
Quit | Leave the current editor invocation. |
C-Line |
Select Buffer | Read and select a named buffer. |
Meta bindings
| Input | Command | Effect |
|---|---|---|
M-( |
Backward Sentence | Target absent from the exact 19-file build corpus. |
M-) |
Forward Sentence | Target absent from the exact 19-file build corpus. |
M-- |
Negate Numeric Arg | Negate the numeric prefix. |
M-. |
Edit Definition | Find or create the buffer for a Lisp definition. |
M-/, M-? |
Self Document | Describe a command character. |
M-0 … M-9 |
Numbers | Accumulate a numeric prefix. |
M-< |
Goto Beginning | Move point to the beginning of the buffer. |
M-= |
Count Lines Region | Report the line count in the active region. |
M-> |
Goto End | Move point to the end of the buffer. |
M-@, M-T |
Mark Word | Activate a region spanning a word. |
M-B |
Backward Word | Move backward by words. |
M-C |
Uppercase Initial | Capitalize a word. |
M-D, M-K |
Kill Word | Kill forward by words. |
M-F |
Forward Word | Move forward by words. |
M-G |
Beep | Signal an invalid/canceling state. |
M-J |
Change Font Word | Change the font of a word. |
M-L |
Lowercase Word | Lowercase a word. |
M-M, M-Return |
Back To Indentation | Move to the first nonblank position on the line. |
M-R |
Move To Screen Edge | Move point toward a displayed-window edge. |
M-U |
Uppercase Word | Uppercase a word. |
M-V |
Previous Screen | Move backward by a screen. |
M-W |
Save Region | Copy the active region without deleting it. |
M-X |
Extended Command | Complete and run a named command. |
M-Y |
Yank Pop | Replace the last yank with another kill-ring entry. |
M-Z |
Eval Buffer And Compile And Exit | Compile the buffer and leave the editor. |
M-[ |
Backward Paragraph | Target absent from the exact 19-file build corpus. |
M-\ |
Delete Horizontal Space | Remove adjacent spaces and tabs. |
M-] |
Forward Paragraph | Target absent from the exact 19-file build corpus. |
M-^ |
Delete Indentation | Join lines and remove indentation at the join. |
M-Rubout |
Backward Kill Word | Kill backward by words. |
M-Tab |
Stupid Tab | Run EINE's literal/simple tab operation. The source name supplies no stronger semantic claim. |
M-Line |
Rename Buffer | Rename the current buffer. |
Control-Meta bindings
| Input | Command | Effect |
|---|---|---|
C-M-(, C-M-U |
Backward Up List | Move backward out of the enclosing list. |
C-M-) |
Forward Up List | Move forward out of the enclosing list. |
C-M-- |
Negate Numeric Arg | Negate the numeric prefix. |
C-M-0 … C-M-9 |
Numbers | Accumulate a numeric prefix. |
C-M-@, C-M-T |
Mark Sexp | Activate a region spanning an s-expression. |
C-M-A, C-M-[ |
Beginning Of Defun | Move to a definition boundary at the beginning. |
C-M-B |
Backward Sexp | Move backward by s-expressions. |
C-M-E, C-M-] |
End Of Defun | Move to a definition boundary at the end. |
C-M-F |
Forward Sexp | Move forward by s-expressions. |
C-M-G |
Format Code | Target absent from the exact 19-file build corpus. |
C-M-H |
Mark Defun | Activate the region around the current definition. |
C-M-J |
Change Font Region | Change the font of the active region. |
C-M-K |
Kill Sexp | Kill forward by s-expressions. |
C-M-M, C-M-Return |
Back To Indentation | Move to the first nonblank position on the line. |
C-M-N |
Forward List | Move forward by lists. |
C-M-O |
Split Line | Split the line at point. |
C-M-P |
Backward List | Move backward by lists. |
C-M-Q |
Indent Sexp | Indent the following s-expression. |
C-M-R |
Move To Screen Edge | Move point toward a displayed-window edge. |
C-M-S |
Incremental Search | Search incrementally. |
C-M-W |
Append Next Kill | Make the next kill append to the current kill-ring entry. |
C-M-Z |
Eval Buffer And Exit | Evaluate the buffer and leave the editor. |
C-M-^ |
Delete Indentation | Join lines and remove indentation at the join. |
C-M-Rubout |
Backward Kill Sexp | Kill backward by s-expressions. |
C-M-Line |
Create Buffer | Create and select a buffer. |
Control-X prefix bindings
The unmodified and Control rows contain all direct Control-X leaves. The Meta and Control-Meta rows contain only lowercase-to-uppercase alias machinery and therefore add no command leaves.
| Input | Command | Effect |
|---|---|---|
C-X 1 |
One Window | Display one editing window. |
C-X 2 |
Two Windows | Display two editing windows. |
C-X B |
Select Buffer | Select a named buffer. |
C-X K |
Kill Buffer | Kill a named/current buffer. |
C-X O |
Other Window | Select the other window. |
C-X T |
Exchange Chars | Exchange adjacent characters. |
C-X C-B |
List Buffers | Display the buffer list. |
C-X C-C |
Quit | Leave the editor. |
C-X C-G |
Prefix Beep | Cancel/signal an invalid prefix command. |
C-X C-J |
Change Default Font | Select the insertion font. |
C-X C-L |
Lowercase Region | Lowercase the active region. |
C-X C-N |
Set Goal Column | Save the vertical-motion goal column. |
C-X C-O |
Delete Blank Lines | Collapse blank lines around point. |
C-X C-R |
Read From File | Read a file into the editor. |
C-X C-S |
Save Buffer | Save the current buffer. |
C-X C-U |
Uppercase Region | Uppercase the active region. |
C-X C-W |
Write To File | Write the current buffer to a chosen file. |
C-X C-X |
Swap Point And Mark | Exchange point and mark. |
C-X C-Z |
Edit Definition | Visit a Lisp definition. |
Named extended commands
These are all 53 live entries in ED-EXTENDED-COMMAND-ALIST. A commented-out ADD FUNCTION TO BUFFER form is not an entry and is not counted.
| Command | Source-confirmed purpose |
|---|---|
| Adjust Window Size | Interactively change a window rectangle. |
| Arglist | Display a function's argument list. |
| Barfola | Toggle the optional large-font visual error indication. |
| Bury Window | Move a selected window behind the displayed set. |
| Compile Buffer | Compile the current buffer without leaving EINE. |
| Compile Region | Compile the active region. |
| Create Buffer | Create a normal buffer. |
| Create Tab Buffer | Create a tab-stop buffer. |
| Define Window | Create/define a window rectangle. |
| Edit Definition | Visit a named Lisp definition. |
| Edit Tab Buffer | Select a tab-stop buffer for editing. |
| Enter Temp Area Mode | Allocate editor temporary objects in a resettable area. |
| Evaluate Buffer | Evaluate the current buffer without leaving EINE. |
| Evaluate Region | Evaluate the active region. |
| Exit Temp Area Mode | Return temporary allocation to the default array area. |
| Flash Off | Select the audible TV-BEEP behavior in this source's inverted flag convention. |
| Flash On | Select the non-audible/display-flash TV-BEEP behavior in this source's inverted flag convention. |
| Forget All Files | Drop all editor file/section associations. |
| Forget File | Drop the associations for one file. |
| Grind Definition | Insert/display a formatted definition. |
| Grind S-Expression | Insert/display a formatted s-expression. |
| Ibeam Blinker | Use the I-beam point cursor. |
| Insert File | Insert file contents at point. |
| Install Command | Bind an editor command to a character. |
| Kill All Buffers | Kill the ordinary buffer set. |
| Kill Buffer | Kill a selected buffer. |
| Kill Window | Delete a selected editor window. |
| List Buffers | Display named buffers. |
| List Files | Display files known to the editor. |
| List Functions | Display definition sections known for a file and their update state. |
| Load Whole File | Load every definition section from a file. |
| Mark Invisible | Stop drawing an active-region indication. |
| Mark Reverse Video | Draw the active region in reverse video. |
| Mark Underline | Draw the active region underlined. |
| Mouse Off | Disable mouse operation/visibility. |
| Mouse On | Enable mouse operation. |
| Move Window | Interactively move a window rectangle. |
| Read Tag Table | Load definition-to-file associations. |
| Rectangular Blinker | Use the rectangular point cursor. |
| Redefine Fonts | Change the editor's available/default font set. |
| Rename Buffer | Change a buffer's name. |
| Revert Buffer | Replace a buffer with its saved source state. |
| Save All Files | Update every modified file known to EINE. |
| Save Buffer | Save the current buffer. |
| Select Buffer | Select a normal buffer. |
| Select Tab Buffer | Select a tab-stop buffer. |
| Set Fonts | Alias of Redefine Fonts in the initial alist. |
| Tablet Off | Alias of Mouse Off. |
| Tablet On | Enable tablet input. |
| Update All Files | Same implementation as Save All Files. |
| Update File | Write modified definition sections for one file. |
| Write Region | Write the active region to a file. |
| Zowie | Toggle running the separately loaded ZOWIE display effect on editor errors. |
EDT editor-top-level overlay
edt.84 temporarily changes six main-table cells while the EINE-based editor top level is active. “Unbound” is an intentional override of the ordinary EINE binding.
| Binding | EDT value | Effect |
|---|---|---|
C-M-Y |
Insert Interaction | Insert a numbered previous submitted interaction. |
C-Z |
Exit Top Level | Leave EDT. |
M-Z |
Unbound | Suppress EINE's compile-and-exit command. |
C-M-Z |
Unbound | Suppress EINE's evaluate-and-exit command. |
Clear |
Interim-2 Clear | Recenter at the current EDT output/input boundary. |
C-Return |
Activate | Submit buffered input to the top-level stream. |
Recursive minibuffer context overrides
EINE does not construct a separate static minibuffer keymap. Each reader dynamically rebinds cells in the live base array around a recursive command loop; every cell not listed here continues through the ordinary EINE table. The bindings unwind when that recursive invocation returns.
| Context | Binding or raw cell | Effective command or value |
|---|---|---|
| String minibuffer | modifier row 0, code 033 octal |
Get String Exit |
| String minibuffer | Return, row 0 code 215 octal |
Get String Exit |
| String minibuffer | C-G |
Mini Buffer Beep |
| String minibuffer | C-Z, M-Z, C-M-Z |
explicitly NIL / unbound |
| Lisp reader minibuffer | C-G |
Mini Buffer Beep |
| Lisp reader minibuffer | C-Return |
Read Exit |
| Lisp reader minibuffer | C-Z, M-Z, C-M-Z |
explicitly NIL / unbound |
The raw 033 cell is intentionally not assigned a modern key name without a pinned character-map proof. Mini Buffer Beep has contextual behavior: with nonempty input it deletes the whole minibuffer; with empty input it rings, unwinds to EINE's top level, and restores the enclosing display. Read Exit initializes the buffer stream and reads one Lisp expression; Get String Exit returns a copy of the first line, with the caller selecting case conversion and trimming.
Prefix and Help traversal
C-X reads exactly one further character through the captured prefix array. An unbound leaf follows the ordinary undefined-command path. Self Document reads an arbitrary character; if it finds a prefix closure it reads another character and follows that closure's captured table, so Help exposes the staged tree rather than describing only C-X. An undefined target is reported as undefined.
Install Command can mutate a key during a session. The tables above therefore define the pristine selected source profile. A complete live dump MUST record later user mutations as a separate overlay.
Mouse and tablet bindings
Click count is saturated at three, so “triple” also covers higher counts. The two stub rows are bound in the table but their functions only beep in edm.122.
| Pointer region | Clicks | Button 0 | Button 1 | Button 2 |
|---|---|---|---|---|
| Text | 1 | Mark Region | Mark List | Mark Sexp |
| Text | 2 | Move Region | Yank | Kill |
| Text | 3+ | Unbound | Yank Other | Save |
| Line | 1 | Show Line At Top | Mark Line List | Mark Line |
| Line | 2 | Show Line At Bottom | Yank | Kill |
| Line | 3+ | Unbound | Yank Other | Save |
| Paragraph | 1 | Scroll Fast (beep-only stub) | Mark Defun | Mark Paragraph (beep-only stub) |
| Paragraph | 2 | Unbound | Yank | Kill |
| Paragraph | 3+ | Unbound | Yank Other | Save |
Source
- MIT DDC,
etable.34, SHA-25690bbf97c2c4fa932549f52b50c51705a111dac6e4d22a92b1c0a7b74793cc06a; verified 2026-07-18. - MIT DDC,
edm.122, used to distinguish implemented mouse operations from beep-only stubs; verified 2026-07-18. - MIT DDC,
edt.84, 6,884 bytes, SHA-2565e71d7316fe2d558807724fae38583437ef5e5470dfda9bc424a5a2e5f5dcc20; EINE-based editor top-level overlay; verified 2026-07-19. - MIT DDC,
ecmd.50, 16,531 bytes, SHA-2563f552b88c9064f5890938e4ebc0cbf6e662e7b0fe46205bba66a3abb62a5fc10; recursive minibuffer shadows, lookup and failure behavior; verified 2026-07-19. - MIT DDC,
erand.31, 11,851 bytes, SHA-256f5d626baa3a199394d6e45587f208481c8b1d0a124d7460a8b57257c114f650a; prefix, Self Document and command-installation behavior; verified 2026-07-19.