1 Default Key Bindings
In the keybinding descriptions below, a “Meta-” combination usually means “Alt-” or “Option-”, depending on your keyboard. It also can be typed as the Esc key (pressed then released) followed by the rest of the combination; a terminal will typically report a combination using the Alt or Option key as that Esc sequence. In a “Ctl-” combination, the letter case of the key doesn’t matter (i.e., doesn’t require holding the Shift key).
Evaluation, Indentation, and Completion
Return or Ctl-J —
Reads and evaluates the current entry, if it is complete, and otherwise inserts a newline and auto-indents. The notion of “complete” depends on a language, but typically includes requirements like no unbalanced parentheses. (Implementation: ee-newline/accept) Meta-Return —
Inserts a newline and indents. (Implementation: ee-newline) Meta-Ctl-J —
Reads and evaluates the current entry, even if it is not otherwise recognized as complete. (Implementation: ee-accept) Ctl-O —
Creates a new line for input, similar to a non-accepting Return, but does not move the cursor to the new line or indent. (Implementation: ee-open-line) Tab —
Either indents or completes, depending on the text before the cursor. If no text is present before the cursor on the same line, then the line is indented or cycled to the next possible indentation. If the cursor is after an identifier, it’s completed or a list of possible completions is shown. Completion depends on the language, but it is typically drawn from the set of available top-level bindings. (Implementation: ee-id-completion/indent) Ctl-R —
Steps through the next possible completion when there are multiple possible completions. (Implementation: ee-next-id-completion) Meta-Tab —
Indents the current line or cycles though possible indentations. The cursor is moved to just after the indentation before the rest of the line content. (Implementation: ee-indent) Meta-q or Meta-Q or Meta-Ctl-Q —
Reindents the full editor region. (Implementation: ee-indent-all)
Navigation
Left or Ctl-B —
Moves the cursor back one character. (Implementation: ee-backward-char) Right or Ctl-F —
Moves the cursor forward one character. (Implementation: ee-forward-char) Up or Ctl-P —
Moves the cursor up to the previous line— unless the cursor is at the start of the editor-region, in which case replaces the editor region with the previous history entry. (Implementation: ee-previous-line) Down or Ctl-N —
Moves the cursor down to the next line— unless the cursor is at the end of the editor region, in which case replaces the editor region with the next history entry. (Implementation: ee-next-line) Home or Ctl-A —
Moves the cursor to the start of the current line. (Implementation: ee-beginning-of-line) End or Ctl-E —
Moves the cursor to the end of the current line. (Implementation: ee-end-of-line) PageUp or Ctl-X [ —
Moves the cursor up to the previous page. (Implementation: ee-backward-page) PageDown or Ctl-X ] —
Moves the cursor down to the next page. (Implementation: ee-backward-page) Meta-< —
Moves the cursor to the start of the editor region. (Implementation: ee-beginning-of-entry) Meta-> —
Moves the cursor to the end of the editor region. (Implementation: ee-end-of-entry) Ctl-Right or Meta-f or Meta-F —
Moves the cursor forward one whitespace-delimited word. (Implementation: ee-forward-word) Ctl-Left or Meta-b or Meta-B —
Moves the cursor backward one whitespace-delimited word. (Implementation: ee-backward-word) Meta-] —
Moves the cursor to the opener or closer opposite the one under the cursor. (Implementation: ee-goto-matching-delimiter) Ctl-] —
Flashes the cursor on the opener or closer opposite the one under the cursor. (Implementation: ee-flash-matching-delimiter) Meta-Ctl-Right or Meta-Ctl-F —
Moves the cursor forward one expression, where the definition of “expression” is language-specific. (Implementation: ee-forward-exp) Meta-Ctl-Left or Meta-Ctl-B —
Moves the cursor backward one language-specific expression. (Implementation: ee-backward-exp) Meta-Ctl-U —
Moves the cursor upward/outward one language-specific expression. (Implementation: ee-upward-exp) Meta-Ctl-D —
Moves the cursor downward/inward one language-specific expression. (Implementation: ee-downward-exp) Ctl-X Ctl-X —
Moves the cursor to the location of the mark while setting the mark to the cursor’s current position. (Implementation: ee-exchange-point-and-mark)
History
Meta-Up or Meta-Ctl-P —
Replaces the editor region with the previous history entry. (Implementation: ee-history-bwd) Meta-Down or Meta-Ctl-N —
Replaces the editor region with the next history entry. (Implementation: ee-history-fwd) Meta-p —
Replaces the editor region with the previous history entry that starts the same as the current editor content. (Implementation: ee-history-bwd-prefix) Meta-P —
Replaces the editor region with the previous history entry that includes the same as the current editor content. (Implementation: ee-history-bwd-contains) Meta-n —
Replaces the editor region with the next history entry that starts the same as the current editor content. (Implementation: ee-history-fwd-prefix) Meta-N —
Replaces the editor region with the next history entry that includes the same as the current editor content. (Implementation: ee-history-fwd-contains)
Deletion, Insertion, and Transposition
Backspace or Ctl-H —
Deletes the previous character, if any. (Implementation: ee-backward-delete-char) Ctl-D —
Deletes the next character, if any— unless the editor region is empty, in which case returns an end-of-file as the input. (Implementation: ee-eof/delete-char) Delete —
Deletes the next character, if any. (Implementation: ee-delete-char) Ctl-U —
Deletes the content of the current line, no matter where the cursor is within the line. (Implementation: ee-delete-line) Ctl-K or Meta-k —
Deletes the content of the current line following the cursor, or merges the next line with the current one if the cursor is at the end of the line. (Implementation: ee-delete-to-eol) Ctl-G —
Deletes the full content of the editor region. (Implementation: ee-delete-entry) Ctl-C —
Deletes the full content of the editor region, and also moves to the end of the history— unless the editor region is empty, in which case sends a break signal to the current thread. (Implementation: ee-reset-entry/break) Meta-d —
Deletes one whitespace-delimited word after the cursor. (Implementation: ee-delete-word) Meta-Delete or Meta-Ctl-K —
Deletes one expression after the cursor, where the definition of “expression” is language-specific. (Implementation: ee-delete-exp) Meta-Backspace or Meta-Ctl-H —
Deletes one expression before the cursor. (Implementation: ee-backward-delete-exp) Ctl-@ or Ctl-Ctl- —
Set the mark to be the same position as the cursor. The mark is a kind of second cursor, but invisible, that is used by various editing operations. (Implementation: ee-set-mark) Ctl-W —
Deletes content between the cursor and the mark. When no mark is set, deletes one expression before the cursor. (Implementation: ee-delete-between-point-and-mark-or-backward) Ctl-Y —
Inserts content previously deleted, where multiple consecutive deletions accumulate to one set of content to insert. (Implementation: ee-yank-kill-buffer) Ctl-V —
Inserts the content of the system clipboard. (Implementation: ee-yank-selection) Ctl-T —
Transposes characters to left and right of the cursor— unless the cursor is at the end of a line, in which case transposes the previous two characters. (Implementation: ee-transpose-char) Meta-t —
Transposes space-delimited words to the left and right of the cursor. (Implementation: ee-transpose-word) Meta-Ctl-T —
Transposes language-specific expressions to the left and right of the cursor. (Implementation: ee-transpose-exp)
Process Control
Ctl-L —
Refreshes the editor region’s display. (Implementation: ee-redisplay) Ctl-Z —
Suspends the current process. (Implementation: ee-suspend-process)