Lisp Machine Museum Documentation Examiner
Genera Museum Documentation

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-, and C-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-0 through C-9, M-0 through M-9, and C-M-0 through C-M-9 are 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-256 90bbf97c2c4fa932549f52b50c51705a111dac6e4d22a92b1c0a7b74793cc06a; 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-256 5e71d7316fe2d558807724fae38583437ef5e5470dfda9bc424a5a2e5f5dcc20; EINE-based editor top-level overlay; verified 2026-07-19.
  • MIT DDC, ecmd.50, 16,531 bytes, SHA-256 3f552b88c9064f5890938e4ebc0cbf6e662e7b0fe46205bba66a3abb62a5fc10; recursive minibuffer shadows, lookup and failure behavior; verified 2026-07-19.
  • MIT DDC, erand.31, 11,851 bytes, SHA-256 f5d626baa3a199394d6e45587f208481c8b1d0a124d7460a8b57257c114f650a; prefix, Self Document and command-installation behavior; verified 2026-07-19.
Try “search window system”, “open genera”, or “help”.