The effect of this is similar to setting the current-buffer to buffer
during the evaluation of forms. There are restrictions placed on what the
code can expect about its environment. In particular, the value of any global
binding of a Hemlock variable which is also a mode local variable of some mode
is ill-defined; if the variable has a global binding it will be bound, but the
value may not be the global value. It is also impossible to nest
use-buffer
’s in different buffers. The reason for using use-buffer
is
that it may be significantly faster than changing current-buffer
to
buffer and back.
&optional
handle-abort ¶recursive-edit
invokes the command interpreter. The command interpreter
will read from the keyboard and invoke commands until it is terminated with
either exit-recursive-edit
or abort-recursive-edit
.
Normally, an editor-error or C-g
aborts the command in progress and
returns control to the top-level command loop. If recursive-edit
is used
with handle-abort true, then editor-error
or C-g
will only abort
back to the recursive command loop.
Before the command interpreter is entered the hook Enter Recursive Edit Hook is invoked.
This returns whether the calling point is dynamically within a recursive edit context.
&optional
values-list ¶exit-recursive-edit
exits a recursive edit returning as multiple values
each element of values-list, which defaults to nil. This invokes
Exit Recursive Edit Hook after exiting the command interpreter. If no
recursive edit is in progress, then this signals an error.
&rest
args ¶abort-recursive-edit
terminates a recursive edit by applying
editor-error to args after exiting the command interpreter. This
invokes Abort Recursive Edit Hook with args before aborting the
recursive edit . If no recursive edit is in progress, then this signals an
error.