save-buffers-kill-terminal).
suspend-emacs).
Killing Emacs means terminating the Emacs program. To do
this, type C-x C-c (save-buffers-kill-terminal). A
two-character key is used to make it harder to type by accident. If
there are any modified file-visiting buffers when you type C-x
C-c, Emacs first offers to save these buffers. If you do not save
them all, it asks for confirmation again, since the unsaved changes
will be lost. Emacs also asks for confirmation if any subprocesses
are still running, since killing Emacs will also kill the subprocesses
(see Shell).
C-x C-c behaves specially if you are using Emacs as a server. If you type it from a “client frame”, it closes the client connection. See Emacs Server.
Emacs can, optionally, record certain session information when you kill it, such as the files you were visiting at the time. This information is then available the next time you start Emacs. See Saving Emacs Sessions.
If the value of the variable confirm-kill-emacs is
non-nil, C-x C-c assumes that its value is a predicate
function, and calls that function. If the result of the function call
is non-nil, the session is killed, otherwise Emacs continues to
run. One convenient function to use as the value of
confirm-kill-emacs is the function yes-or-no-p. The
default value of confirm-kill-emacs is nil.
To kill Emacs without being prompted about saving, type M-x kill-emacs.
You can “exit” Emacs in two other ways. On a graphical display, you can minimize (or iconify) an Emacs frame; depending on the window system, this either replaces the Emacs frame with a tiny “icon” or conceals the frame entirely (see Frames). On a text-only terminal, you can suspend Emacs; this means stopping the Emacs program temporarily, returning control to its parent process (usually a shell).
C-z runs the command suspend-frame. On a graphical
display, this “minimizes” (or “iconifies”) the selected Emacs
frame. On a text terminal, this suspends the Emacs process.
After minimizing or suspending Emacs, you can return to it and continue editing wherever you left off. The way to do this depends on the window system or shell. In most common shells, you can resume Emacs after suspending it with the shell command %emacs.
On very old systems that don't support suspending programs,
C-z starts an inferior shell that communicates directly with the
terminal, and Emacs waits until you exit the subshell. (The way to
exit the subshell is usually C-d or exit.) On these
systems, you can only get back to the shell from which Emacs was run
(to log out, for example) when you kill Emacs. Suspending can also
fail if you run Emacs under a shell that doesn't support suspending
jobs, even if the system itself does support it. In this case, you
can set the variable cannot-suspend to a non-nil value
to force C-z to start an inferior shell.
Text-only terminals usually listen for certain special characters whose meaning is to kill or suspend the program you are running. This terminal feature is turned off while you are in Emacs. The meanings of C-z and C-x C-c as keys in Emacs were inspired by the use of C-z and C-c on several operating systems as the characters for stopping or killing a program, but that is their only relationship with the operating system. You can customize these keys to run any commands of your choice (see Keymaps).
blog comments powered by Disqus