recursive-edit
recursive-edit is an interactive built-in function in `C source code
'.
(recursive-edit)
Invoke the editor command loop recursively.
To get out of the recursive edit, a command can throw to `exit' -- for
instance `(throw 'exit nil)'.
If you throw a value other than t, `recursive-edit' returns normally
to the function that called it. Throwing a t value causes
`recursive-edit' to quit, so that control returns to the command loop
one level up.
This function is called by the editor initialization to begin editing.