Go to the first, previous, next, last section, table of contents.

GNU Emacs Interface

There is an interface library, called xscheme, distributed with MIT Scheme and GNU Emacs, which facilitates running Scheme as a subprocess of Emacs. If you wish to use this interface, please install the version of `xscheme.el' that comes with MIT Scheme, as it is guaranteed to be correct for your version of Scheme.

To invoke Scheme from Emacs, use M-x run-scheme, which is defined when either of the libraries `scheme' or `xscheme' is loaded. You may give run-scheme a prefix argument, in which case it will allow you to edit the command line that is used to invoke Scheme. Do not remove the -emacs option!

Scheme will be started up as a subprocess in a buffer called *scheme*. This buffer will be in scheme-interaction-mode and all output from the Scheme process will go there. The mode line for the *scheme* buffer will have this form:

--**-*scheme*: 1 [Evaluator]           (Scheme Interaction: input)------

The first field, showing `1' in this example, is the level number.

The second field, showing `[Evaluator]' in this example, describes the type of REPL that is running. Other values include:

[Debugger]
[Where]

The mode after `Scheme Interaction' is one of:

`input'
Scheme is waiting for input.
`run'
Scheme is running an evaluation.
`gc'
Scheme is garbage collecting.

When xscheme is loaded, scheme-mode is extended to include commands for evaluating expressions (do C-h m in any scheme-mode buffer for the most up-to-date information):

ESC o
Evaluates the current buffer (xscheme-send-buffer).
ESC z
Evaluates the current definition (xscheme-send-definition). This is also bound to ESC C-x.
ESC C-z
Evaluates the current region (xscheme-send-region).
C-x C-e
Evaluates the expression to the left of point (xscheme-send-previous-expression). This is also bound to ESC RET.
C-c C-s
Selects the *scheme* buffer and places you at its end (xscheme-select-process-buffer).
C-c C-y
Yanks the most recently evaluated expression, placing it at point (xscheme-yank-previous-send). This works only in the *scheme* buffer.

The following commands provide interrupt capability:

C-c C-c
Like typing C-g when running Scheme without Emacs (xscheme-send-control-g-interrupt).
C-c C-x
Like typing C-c C-x when running Scheme without Emacs (xscheme-send-control-x-interrupt).
C-c C-u
Like typing C-c C-u when running Scheme without Emacs (xscheme-send-control-u-interrupt).
C-c C-b
Like typing C-c C-b when running Scheme without Emacs (xscheme-send-breakpoint-interrupt).
C-c C-p
Like evaluating (proceed) (xscheme-send-proceed).

Go to the first, previous, next, last section, table of contents.