2 % Title: GNU Emacs Survival Card
4 % Copyright (C) 2000-2014 Free Software Foundation, Inc.
6 % Author: Wlodek Bzyl <matwb@univ.gda.pl>
8 % This file is part of GNU Emacs.
10 % GNU Emacs is free software: you can redistribute it and/or modify
11 % it under the terms of the GNU General Public License as published by
12 % the Free Software Foundation, either version 3 of the License, or
13 % (at your option) any later version.
15 % GNU Emacs is distributed in the hope that it will be useful,
16 % but WITHOUT ANY WARRANTY; without even the implied warranty of
17 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 % GNU General Public License for more details.
20 % You should have received a copy of the GNU General Public License
21 % along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
25 % User interface is `plain.tex' and macros described below
27 % \title{CARD TITLE}{for version 23}
29 % optional paragraphs separated with \askip amount of vertical space
30 % \key{KEY-NAME} description of key or
31 % \mkey{M-x LONG-LISP-NAME} description of Elisp function
33 % \kbd{ARG} -- argument is typed literally
35 \def\plainfmtname{plain
}
36 \ifx\fmtname\plainfmtname
38 \errmessage{This file requires `plain' format to be typeset correctly
}
42 % PDF output layout. 0 for A4, 1 for letter (US), a `l' is added for
49 \def\copyrightnotice{\penalty-
1\vfill
50 \vbox{\smallfont\baselineskip=
0.8\baselineskip\raggedcenter
51 Copyright
\copyright\
\year\ Free Software Foundation, Inc.
\break
52 For GNU Emacs version
\versionemacs\break
53 Author W
{\l}odek Bzyl (matwb@univ.gda.pl)
55 Permission is granted to make and distribute copies of
56 this card provided the copyright notice and this permission notice
57 are preserved on all copies.
\par}}
61 \font\titlefont=cmss10 scaled
1200
62 \font\headingfont=cmss10
80 \baselineskip=
0.8\baselineskip
82 \newdimen\intercolumnskip % horizontal space between columns
83 \intercolumnskip=
0.5in
86 \let\lr=L
\newbox\leftcolumn
88 \global\setbox\leftcolumn\columnbox \global\let\lr=R
90 \doubleformat \global\let\lr=L
\fi}
91 \def\doubleformat{\shipout\vbox{\makeheadline
92 \leftline{\box\leftcolumn\hskip\intercolumnskip\columnbox}
95 \def\columnbox{\leftline{\pagebody}}
97 \def\newcolumn{\vfil\eject}
99 \def\bye{\par\vfil\supereject
100 \if R
\lr \null\vfil\eject\fi
103 \outer\def\title#1#2{{\titlefont\centerline{#1}}\vskip 1ex plus
0.5ex
105 \vskip2\baselineskip}
107 \outer\def\section#1{\filbreak
109 \leftline{\headingfont #1}
111 \def\bskip{\vskip 2.5ex plus
0.25ex
}
112 \def\askip{\vskip 0.75ex plus
0.25ex
}
114 \newdimen\defwidth \defwidth=
0.25\hsize
115 \def\hang{\hangindent\defwidth}
117 \def\textindent#1{\noindent\llap{\hbox to
\defwidth{\tt#1\hfil}}\ignorespaces}
118 \def\key{\par\hangafter=
0\hang\textindent}
120 \def\mtextindent#1{\noindent\hbox{\tt#1\quad}\ignorespaces}
121 \def\mkey{\par\hangafter=
1\hang\mtextindent}
123 \def\kbd#
{\bgroup\tt \let\next=
}
125 \newdimen\raggedstretch
126 \newskip\raggedparfill \raggedparfill=
0pt plus
1fil
128 {\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000}
130 {\spaceskip=
0.3333em
\relax
131 \xspaceskip=
0.5em
\relax}
135 \rightskip=
0pt plus
\raggedstretch
137 \parfillskip=
\raggedparfill
142 \rightskip=
0pt plus
\raggedstretch
153 \interlinepenalty=
10000
160 \title{GNU\ \ Emacs\ \ Survival\ \ Card
}{for version
\versionemacs}
162 In the following,
\kbd{C-z
} means hit the `
\kbd{z
}' key while
163 holding down the
{\it Ctrl
}\ \ key.
\kbd{M-z
} means hit the
164 `
\kbd{z
}' key while hitting the
{\it Meta\/
} (labeled
{\it Alt\/
}
165 on some keyboards) or after hitting
{\it Esc\/
} key.
167 \section{Running Emacs
}
169 To enter GNU Emacs, just type its name:
\kbd{emacs
}.
170 Emacs divides the frame into several areas:
172 buffer area with the edited text,
173 mode line describing the buffer in the window above it,
174 and a minibuffer/echo area in the last line.
176 \key{C-x C-c
} quit Emacs
177 \key{C-x C-f
} edit file; this command uses the minibuffer to read
178 the file name; use this to create new files by entering the name
180 \key{C-x C-s
} save the file
181 \key{C-x k
} kill a buffer
182 \key{C-g
} in most context: cancel, stop, abort partially typed or
186 \section{Moving About
}
188 \key{C-l
} scroll current line to center of window
189 \key{C-x b
} switch to another buffer
190 \key{M-<
} move to beginning of buffer
191 \key{M->
} move to end of buffer
192 \key{M-g M-g
} go to a given line number
194 \section{Multiple Windows
}
196 \key{C-x
0} remove the current window from the display
197 \key{C-x
1} make active window the only window
198 \key{C-x
2} split window horizontally
199 \key{C-x
3} split window vertically
200 \key{C-x o
} move to other window
204 Emacs defines a `region' as the space between the
{\it mark\/
} and
205 the
{\it point
}. A mark is set with
\kbd{C-
{\it space
}}.
206 The point is at the cursor position.
208 \key{M-h
} mark entire paragraph
209 \key{C-x h
} mark entire buffer
211 \section{Killing and Copying
}
213 \key{C-w
} kill region
214 \key{M-w
} copy region to kill-ring
215 \key{C-k
} kill from the cursor all the way to the end of the line
216 \key{M-DEL
} kill word
217 \key{C-y
} yank back the last kill (
\kbd{C-w C-y
} combination could be
218 used to move text around)
219 \key{M-y
} replace last yank with previous kill
223 \key{C-s
} search for a string
224 \key{C-r
} search for a string backwards
225 \key{RET
} quit searching
226 \key{M-C-s
} regular expression search
227 \key{M-C-r
} reverse regular expression search
229 Use
\kbd{C-s
} or
\kbd{C-r
} again to repeat the search in either direction.
233 Tags tables files record locations of function and
234 procedure definitions, global variables, data types and anything
235 else convenient. To create a tags table file, type
236 `
{\tt etags
} {\it input
\_files}' as a shell command.
238 \key{M-.
} find a definition
239 \key{C-u M-.
} find next occurrence of definition
240 \key{M-*
} pop back to where
\kbd{M-.
} was last invoked
241 \mkey{M-x tags-query-replace
} run query-replace on all files
242 recorded in tags table
243 \key{M-,
} continue last tags search or query-replace
247 \key{M-x compile
} compile code in active window
248 \key{C-c C-c
} go to the next compiler error, when in
249 the compile window or
250 \key{C-x `
} when in the window with source code
252 \section{Dired, the Directory Editor
}
254 \key{C-x d
} invoke Dired
255 \key{d
} flag this file for deletion
256 \key{\~
{}} flag all backup files for deletion
257 \key{u
} remove deletion flag
258 \key{x
} delete the files flagged for deletion
260 \key{g
} update the Dired buffer
261 \key{f
} visit the file described on the current line
262 \key{s
} switch between alphabetical date/time order
264 \section{Reading and Sending Mail
}
266 \key{M-x rmail
} start reading mail
267 \key{q
} quit reading mail
269 \key{d
} mark the current message for deletion
270 \key{x
} remove all messages marked for deletion
272 \key{C-x m
} begin composing a message
273 \key{C-c C-c
} send the message and switch to another buffer
274 \key{C-c C-f C-c
} move to the `CC' header field, creating one
277 \section{Miscellaneous
}
279 \key{M-q
} fill paragraph
280 \key{M-/
} expand previous word dynamically
281 \key{C-z
} iconify (suspend) Emacs when running it under X or
283 \mkey{M-x revert-buffer
} replace the text being edited with the
284 text of the file on disk
286 \section{Query Replace
}
288 \key{M-\%
} interactively search and replace
289 \key{M-C-\%
} using regular expressions
291 Valid responses in query-replace mode are
293 \key{SPC
} replace this one, go on to next
294 \key{,
} replace this one, don't move
295 \key{DEL
} skip to next without replacing
296 \key{!
} replace all remaining matches
297 \key{\^
{}} back up to the previous match
298 \key{RET
} exit query-replace
299 \key{C-r
} enter recursive edit (
\kbd{M-C-c
} to exit)
301 \section{Regular Expressions
}
303 \key{.
{\rm(dot)
}} any single character except a newline
304 \key{*
} zero or more repeats
305 \key{+
} one or more repeats
306 \key{?
} zero or one repeat
307 \key{[$
\ldots$
]} denotes a class of character to match
308 \key{[\^
{}$
\ldots$
]} negates the class
310 \key{\\
{\it c
}} quote characters otherwise having a special
311 meaning in regular expressions
313 \key{$
\ldots$\\|$
\ldots$\\|$
\ldots$
} matches one of
314 the alternatives (``or'')
315 \key{\\( $
\ldots$ \\)
} groups a series of pattern elements to
317 \key{\\
{\it n
}} same text as
{\it n\/
}th group
319 \key{\^
{}} matches at line beginning
320 \key{\$
} matches at line end
322 \key{\
\w} matches word-syntax character
323 \key{\
\W} matches non-word-syntax character
324 \key{\\<
} matches at word beginning
325 \key{\\>
} matches at word end
326 \key{\
\b} matches at word break
327 \key{\
\B} matches at non-word break
331 \key{C-x r s
} save region in register
332 \key{C-x r i
} insert register contents into buffer
334 \key{C-x r SPC
} save value of point in register
335 \key{C-x r j
} jump to point saved in register
339 \key{C-x r r
} copy rectangle to register
340 \key{C-x r k
} kill rectangle
341 \key{C-x r y
} yank rectangle
342 \key{C-x r t
} prefix each line with a string
344 \key{C-x r o
} open rectangle, shifting text right
345 \key{C-x r c
} blank out rectangle
349 \key{M-x shell
} start a shell within Emacs
350 \key{M-!
} execute a shell command
351 \key{M-|
} run a shell command on the region
352 \key{C-u M-|
} filter region through a shell command
354 \section{Spelling Check
}
356 \key{M-\$
} check spelling of word at the cursor
357 \mkey{M-x ispell-region
} check spelling of all words in region
358 \mkey{M-x ispell-buffer
} check spelling of entire buffer
360 \section{International Character Sets
}
362 \key{C-x RET C-\\
} select and activate input method for
364 \key{C-\\
} enable or disable input method
365 \mkey{M-x list-input-methods
} show all input methods
366 \mkey{M-x set-language-environment
} specify principal language
368 \key{C-x RET c
} set coding system for next command
369 \mkey{M-x find-file-literally
} visit file with no conversion
372 \mkey{M-x list-coding-systems
} show all coding systems
373 \mkey{M-x prefer-coding-system
} choose preferred coding system
375 \section{Keyboard Macros
}
377 \key{C-x (
} start defining a keyboard macro
378 \key{C-x )
} end keyboard macro definition
379 \key{C-x e
} execute last-defined keyboard macro
380 \key{C-u C-x (
} append to last keyboard macro
381 \mkey{M-x name-last-kbd-macro
} name last keyboard macro
383 \section{Simple Customization
}
385 \key{M-x customize
} customize variables and faces
387 \section{Getting Help
}
389 Emacs does command completion for you. Typing
\kbd{M-x
}
390 {\it tab\/
} or
{\it space\/
} gives a list of Emacs commands.
393 \key{C-h t
} run the Emacs tutorial
394 \key{C-h i
} enter Info, the documentation browser
395 \key{C-h a
} show commands matching a string (apropos)
396 \key{C-h k
} display documentation of the function invoked by
399 Emacs gets into different
{\it modes
}, each of which customizes
400 Emacs for editing text of a particular sort. The mode line
401 contains names of the current modes, in parentheses.
403 \key{C-h m
} get mode-specific information
410 % compile-command: "pdftex survival"