51.8 Emergency Escape
On text terminals, the emergency escape feature suspends Emacs
immediately if you type C-g
a second time before Emacs can
actually respond to the first one by quitting. This is so you can
always get out of GNU Emacs no matter how badly it might be hung.
When things are working properly, Emacs recognizes and handles the
first C-g
so fast that the second one won’t trigger emergency
escape. However, if some problem prevents Emacs from handling the
first C-g
properly, then the second one will get you back to the
shell.
When you resume Emacs after a suspension caused by emergency escape, it reports the resumption and asks a question or two before going back to what it had been doing:
Emacs is resuming after an emergency escape.
Auto-save? (y or n)
Abort (and dump core)? (y or n)
Answer each question with y
or n
followed by RET
.
Saying y
to ‘ Auto-save?
’ causes immediate auto-saving of
all modified buffers in which auto-saving is enabled. Saying n
skips this. This question is omitted if Emacs is in a state where
auto-saving cannot be done safely.
Saying y
to ‘ Abort (and dump core)?
’ causes Emacs to
crash, dumping core. This is to enable a wizard to figure out why
Emacs was failing to quit in the first place. Execution does not
continue after a core dump.
If you answer this question n
, Emacs execution resumes. With
luck, Emacs will ultimately do the requested quit. If not, each
subsequent C-g
invokes emergency escape again.
If Emacs is not really hung, just slow, you may invoke the double
C-g
feature without really meaning to. Then just resume and
answer n
to both questions, and you will get back to the former
state. The quit you requested will happen by and by.
Emergency escape is active only for text terminals. On graphical displays, you can use the mouse to kill Emacs or switch to another program.
On MS-DOS, you must type C-Break
(twice) to cause
emergency escape—but there are cases where it won’t work, when a
system call hangs or when Emacs is stuck in a tight loop in C code.