1@c This is part of the Emacs manual. 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2001, 2002, 2003, 3@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc. 4@c See file emacs.texi for copying conditions. 5@node Entering Emacs, Exiting, Text Characters, Top 6@chapter Entering and Exiting Emacs 7@cindex entering Emacs 8@cindex starting Emacs 9 10 The usual way to invoke Emacs is with the shell command 11@command{emacs}. Emacs clears the screen, then displays an initial 12help message and copyright notice. Some operating systems discard 13your type-ahead when Emacs starts up; they give Emacs no way to 14prevent this. On those systems, wait for Emacs to clear the screen 15before you start typing. 16 17 From a shell window under the X Window System, run Emacs in the 18background with @command{emacs&}. This way, Emacs won't tie up the 19shell window, so you can use it to run other shell commands while 20Emacs is running. You can type Emacs commands as soon as you direct 21your keyboard input to an Emacs frame. 22 23@vindex initial-major-mode 24 When Emacs starts up, it creates a buffer named @samp{*scratch*}. 25That's the buffer you start out in. The @samp{*scratch*} buffer uses 26Lisp Interaction mode; you can use it to type Lisp expressions and 27evaluate them. You can also ignore that capability and just write notes 28there. You can specify a different major mode for this buffer by 29setting the variable @code{initial-major-mode} in your init file. 30@xref{Init File}. 31 32 It is possible to specify files to be visited, Lisp files to be 33loaded, and functions to be called through Emacs command-line 34arguments. @xref{Emacs Invocation}. The feature exists mainly for 35compatibility with other editors, and for scripts. 36 37 Many editors are designed to edit one file. When done with that 38file, you exit the editor. The next time you want to edit a file, you 39must start the editor again. Working this way, it is convenient to 40use a command-line argument to say which file to edit. 41 42 However, killing Emacs after editing one each and starting it afresh 43for the next file is both unnecessary and harmful, since it denies you 44the full power of Emacs. Emacs can visit more than one file in a 45single editing session, and that is the right way to use it. Exiting 46the Emacs session loses valuable accumulated context, such as the kill 47ring, registers, undo history, and mark ring. These features are 48useful for operating on multiple files, or even continuing to edit one 49file. If you kill Emacs after each file, you don't take advantage of 50them. 51 52 The recommended way to use GNU Emacs is to start it only once, just 53after you log in, and do all your editing in the same Emacs session. 54Each time you edit a file, you visit it with the existing Emacs, which 55eventually has many files in it ready for editing. Usually you do not 56kill Emacs until you are about to log out. @xref{Files}, for more 57information on visiting more than one file. 58 59 To edit a file from another program while Emacs is running, you can 60use the @command{emacsclient} helper program to open a file in the 61already running Emacs. @xref{Emacs Server}. 62 63@ifnottex 64@raisesections 65@end ifnottex 66 67@node Exiting, Basic, Entering Emacs, Top 68@section Exiting Emacs 69@cindex exiting 70@cindex killing Emacs 71@cindex suspending 72@cindex leaving Emacs 73@cindex quitting Emacs 74 75 There are two commands for exiting Emacs, and three kinds of 76exiting: @dfn{iconifying} Emacs, @dfn{suspending} Emacs, and 77@dfn{killing} Emacs. 78 79 @dfn{Iconifying} means replacing the Emacs frame with a small box or 80``icon'' on the screen. This is the usual way to exit Emacs when 81you're using a graphical display---if you bother to ``exit'' at all. 82(Just switching to another application is usually sufficient.) 83 84 @dfn{Suspending} means stopping Emacs temporarily and returning 85control to its parent process (usually a shell), allowing you to 86resume editing later in the same Emacs job. This is the usual way to 87exit Emacs when running it on a text terminal. 88 89 @dfn{Killing} Emacs means destroying the Emacs job. You can run Emacs 90again later, but you will get a fresh Emacs; there is no way to resume 91the same editing session after it has been killed. 92 93@table @kbd 94@item C-z 95Suspend Emacs (@code{suspend-emacs}) or iconify a frame 96(@code{iconify-or-deiconify-frame}). 97@item C-x C-c 98Kill Emacs (@code{save-buffers-kill-emacs}). 99@end table 100 101@kindex C-z 102@findex iconify-or-deiconify-frame 103 On graphical displays, @kbd{C-z} runs the command 104@code{iconify-or-deiconify-frame}, which temporarily iconifies (or 105``minimizes'') the selected Emacs frame (@pxref{Frames}). You can 106then use the window manager to select some other application. (You 107could select another application without iconifying Emacs first, but 108getting the Emacs frame out of the way can make it more convenient to 109find the other application.) 110 111@findex suspend-emacs 112 On a text terminal, @kbd{C-z} runs the command @code{suspend-emacs}. 113Suspending Emacs takes you back to the shell from which you invoked 114Emacs. You can resume Emacs with the shell command @command{%emacs} 115in most common shells. On systems that don't support suspending 116programs, @kbd{C-z} starts an inferior shell that communicates 117directly with the terminal, and Emacs waits until you exit the 118subshell. (The way to do that is probably with @kbd{C-d} or 119@command{exit}, but it depends on which shell you use.) On these 120systems, you can only get back to the shell from which Emacs was run 121(to log out, for example) when you kill Emacs. 122 123@vindex cannot-suspend 124 Suspending can fail if you run Emacs under a shell that doesn't 125support suspendion of its subjobs, even if the system itself does 126support it. In such a case, you can set the variable 127@code{cannot-suspend} to a non-@code{nil} value to force @kbd{C-z} to 128start an inferior shell. 129 130@kindex C-x C-c 131@findex save-buffers-kill-emacs 132 To exit and kill Emacs, type @kbd{C-x C-c} 133(@code{save-buffers-kill-emacs}). A two-character key is used to make 134it harder to type by accident. This command first offers to save any 135modified file-visiting buffers. If you do not save them all, it asks 136for confirmation with @kbd{yes} before killing Emacs, since any 137changes not saved now will be lost forever. Also, if any subprocesses are 138still running, @kbd{C-x C-c} asks for confirmation about them, since 139killing Emacs will also kill the subprocesses. 140 141@vindex confirm-kill-emacs 142 If the value of the variable @code{confirm-kill-emacs} is 143non-@code{nil}, @kbd{C-x C-c} assumes that its value is a predicate 144function, and calls that function. If the result is non-@code{nil}, the 145session is killed, otherwise Emacs continues to run. One convenient 146function to use as the value of @code{confirm-kill-emacs} is the 147function @code{yes-or-no-p}. The default value of 148@code{confirm-kill-emacs} is @code{nil}. 149 150 You can't resume an Emacs session after killing it. Emacs can, 151however, record certain session information when you kill it, such as 152which files you visited, so the next time you start Emacs it will try 153to visit the same files. @xref{Saving Emacs Sessions}. 154 155 The operating system usually listens for certain special characters 156whose meaning is to kill or suspend the program you are running. 157@b{This operating system feature is turned off while you are in Emacs.} 158The meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were 159inspired by the use of @kbd{C-z} and @kbd{C-c} on several operating 160systems as the characters for stopping or killing a program, but that is 161their only relationship with the operating system. You can customize 162these keys to run any commands of your choice (@pxref{Keymaps}). 163 164@ifnottex 165@lowersections 166@end ifnottex 167 168@ignore 169 arch-tag: df798d8b-f253-4113-b585-f528f078a944 170@end ignore 171