annotate etc/refcard.tex @ 36150:46e59561af4c

Display Vars node renamed Display Custom. Include info there about customizing cursor appearance. Clean up aggressive scrolling. Clarify horizontal scrolling discussion. Fix index entries for line number mode.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Feb 2001 16:45:37 +0000
parents e96ffe544684
children e69aa66ec7cc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
1 % Reference Card for GNU Emacs version 20 on Unix systems
Dave Love <fx@gnu.org>
parents:
diff changeset
2 %**start of header
Dave Love <fx@gnu.org>
parents:
diff changeset
3 \newcount\columnsperpage
Dave Love <fx@gnu.org>
parents:
diff changeset
4
Dave Love <fx@gnu.org>
parents:
diff changeset
5 % This file can be printed with 1, 2, or 3 columns per page (see below).
Dave Love <fx@gnu.org>
parents:
diff changeset
6 % Specify how many you want here. Nothing else needs to be changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
7
Dave Love <fx@gnu.org>
parents:
diff changeset
8 \columnsperpage=1
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 % Copyright (c) 1987, 1993, 1996, 1997 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
11
Dave Love <fx@gnu.org>
parents:
diff changeset
12 % This file is part of GNU Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
13
Dave Love <fx@gnu.org>
parents:
diff changeset
14 % GNU Emacs is free software; you can redistribute it and/or modify
Dave Love <fx@gnu.org>
parents:
diff changeset
15 % it under the terms of the GNU General Public License as published by
Dave Love <fx@gnu.org>
parents:
diff changeset
16 % the Free Software Foundation; either version 2, or (at your option)
Dave Love <fx@gnu.org>
parents:
diff changeset
17 % any later version.
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 % GNU Emacs is distributed in the hope that it will be useful,
Dave Love <fx@gnu.org>
parents:
diff changeset
20 % but WITHOUT ANY WARRANTY; without even the implied warranty of
Dave Love <fx@gnu.org>
parents:
diff changeset
21 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Dave Love <fx@gnu.org>
parents:
diff changeset
22 % GNU General Public License for more details.
Dave Love <fx@gnu.org>
parents:
diff changeset
23
Dave Love <fx@gnu.org>
parents:
diff changeset
24 % You should have received a copy of the GNU General Public License
Dave Love <fx@gnu.org>
parents:
diff changeset
25 % along with GNU Emacs; see the file COPYING. If not, write to
Dave Love <fx@gnu.org>
parents:
diff changeset
26 % the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Dave Love <fx@gnu.org>
parents:
diff changeset
27 % Boston, MA 02111-1307, USA.
Dave Love <fx@gnu.org>
parents:
diff changeset
28
Dave Love <fx@gnu.org>
parents:
diff changeset
29 % This file is intended to be processed by plain TeX (TeX82).
Dave Love <fx@gnu.org>
parents:
diff changeset
30 %
Dave Love <fx@gnu.org>
parents:
diff changeset
31 % The final reference card has six columns, three on each side.
Dave Love <fx@gnu.org>
parents:
diff changeset
32 % This file can be used to produce it in any of three ways:
Dave Love <fx@gnu.org>
parents:
diff changeset
33 % 1 column per page
Dave Love <fx@gnu.org>
parents:
diff changeset
34 % produces six separate pages, each of which needs to be reduced to 80%.
Dave Love <fx@gnu.org>
parents:
diff changeset
35 % This gives the best resolution.
Dave Love <fx@gnu.org>
parents:
diff changeset
36 % 2 columns per page
Dave Love <fx@gnu.org>
parents:
diff changeset
37 % produces three already-reduced pages.
Dave Love <fx@gnu.org>
parents:
diff changeset
38 % You will still need to cut and paste.
Dave Love <fx@gnu.org>
parents:
diff changeset
39 % 3 columns per page
Dave Love <fx@gnu.org>
parents:
diff changeset
40 % produces two pages which must be printed sideways to make a
Dave Love <fx@gnu.org>
parents:
diff changeset
41 % ready-to-use 8.5 x 11 inch reference card.
Dave Love <fx@gnu.org>
parents:
diff changeset
42 % For this you need a dvi device driver that can print sideways.
Dave Love <fx@gnu.org>
parents:
diff changeset
43 % Which mode to use is controlled by setting \columnsperpage above.
Dave Love <fx@gnu.org>
parents:
diff changeset
44 %
Dave Love <fx@gnu.org>
parents:
diff changeset
45 % Author:
Dave Love <fx@gnu.org>
parents:
diff changeset
46 % Stephen Gildea
Dave Love <fx@gnu.org>
parents:
diff changeset
47 % Internet: gildea@mit.edu
Dave Love <fx@gnu.org>
parents:
diff changeset
48 %
Dave Love <fx@gnu.org>
parents:
diff changeset
49 % Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik
Dave Love <fx@gnu.org>
parents:
diff changeset
50 % for their many good ideas.
Dave Love <fx@gnu.org>
parents:
diff changeset
51
Dave Love <fx@gnu.org>
parents:
diff changeset
52 % If there were room, it would be nice to see a section on Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
53
Dave Love <fx@gnu.org>
parents:
diff changeset
54 \def\versionnumber{2.2}
Dave Love <fx@gnu.org>
parents:
diff changeset
55 \def\year{1997}
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57 \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
Dave Love <fx@gnu.org>
parents:
diff changeset
58 \centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
59 Permissions on back. v\versionnumber}}
Dave Love <fx@gnu.org>
parents:
diff changeset
60
Dave Love <fx@gnu.org>
parents:
diff changeset
61 \def\copyrightnotice{
Dave Love <fx@gnu.org>
parents:
diff changeset
62 \vskip 1ex plus 2 fill\begingroup\small
Dave Love <fx@gnu.org>
parents:
diff changeset
63 \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
Dave Love <fx@gnu.org>
parents:
diff changeset
64 \centerline{v\versionnumber{} for GNU Emacs version 20, June \year}
Dave Love <fx@gnu.org>
parents:
diff changeset
65 \centerline{designed by Stephen Gildea}
Dave Love <fx@gnu.org>
parents:
diff changeset
66
Dave Love <fx@gnu.org>
parents:
diff changeset
67 Permission is granted to make and distribute copies of
Dave Love <fx@gnu.org>
parents:
diff changeset
68 this card provided the copyright notice and this permission notice
Dave Love <fx@gnu.org>
parents:
diff changeset
69 are preserved on all copies.
Dave Love <fx@gnu.org>
parents:
diff changeset
70
Dave Love <fx@gnu.org>
parents:
diff changeset
71 For copies of the GNU Emacs manual, write to the Free Software
Dave Love <fx@gnu.org>
parents:
diff changeset
72 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Dave Love <fx@gnu.org>
parents:
diff changeset
73
Dave Love <fx@gnu.org>
parents:
diff changeset
74 \endgroup}
Dave Love <fx@gnu.org>
parents:
diff changeset
75
Dave Love <fx@gnu.org>
parents:
diff changeset
76 % make \bye not \outer so that the \def\bye in the \else clause below
Dave Love <fx@gnu.org>
parents:
diff changeset
77 % can be scanned without complaint.
Dave Love <fx@gnu.org>
parents:
diff changeset
78 \def\bye{\par\vfill\supereject\end}
Dave Love <fx@gnu.org>
parents:
diff changeset
79
Dave Love <fx@gnu.org>
parents:
diff changeset
80 \newdimen\intercolumnskip %horizontal space between columns
Dave Love <fx@gnu.org>
parents:
diff changeset
81 \newbox\columna %boxes to hold columns already built
Dave Love <fx@gnu.org>
parents:
diff changeset
82 \newbox\columnb
Dave Love <fx@gnu.org>
parents:
diff changeset
83
Dave Love <fx@gnu.org>
parents:
diff changeset
84 \def\ncolumns{\the\columnsperpage}
Dave Love <fx@gnu.org>
parents:
diff changeset
85
Dave Love <fx@gnu.org>
parents:
diff changeset
86 \message{[\ncolumns\space
Dave Love <fx@gnu.org>
parents:
diff changeset
87 column\if 1\ncolumns\else s\fi\space per page]}
Dave Love <fx@gnu.org>
parents:
diff changeset
88
Dave Love <fx@gnu.org>
parents:
diff changeset
89 \def\scaledmag#1{ scaled \magstep #1}
Dave Love <fx@gnu.org>
parents:
diff changeset
90
Dave Love <fx@gnu.org>
parents:
diff changeset
91 % This multi-way format was designed by Stephen Gildea October 1986.
Dave Love <fx@gnu.org>
parents:
diff changeset
92 % Note that the 1-column format is fontfamily-independent.
Dave Love <fx@gnu.org>
parents:
diff changeset
93 \if 1\ncolumns %one-column format uses normal size
Dave Love <fx@gnu.org>
parents:
diff changeset
94 \hsize 4in
Dave Love <fx@gnu.org>
parents:
diff changeset
95 \vsize 10in
Dave Love <fx@gnu.org>
parents:
diff changeset
96 \voffset -.7in
Dave Love <fx@gnu.org>
parents:
diff changeset
97 \font\titlefont=\fontname\tenbf \scaledmag3
Dave Love <fx@gnu.org>
parents:
diff changeset
98 \font\headingfont=\fontname\tenbf \scaledmag2
Dave Love <fx@gnu.org>
parents:
diff changeset
99 \font\smallfont=\fontname\sevenrm
Dave Love <fx@gnu.org>
parents:
diff changeset
100 \font\smallsy=\fontname\sevensy
Dave Love <fx@gnu.org>
parents:
diff changeset
101
Dave Love <fx@gnu.org>
parents:
diff changeset
102 \footline{\hss\folio}
Dave Love <fx@gnu.org>
parents:
diff changeset
103 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
Dave Love <fx@gnu.org>
parents:
diff changeset
104 \else %2 or 3 columns uses prereduced size
Dave Love <fx@gnu.org>
parents:
diff changeset
105 \hsize 3.2in
Dave Love <fx@gnu.org>
parents:
diff changeset
106 \vsize 7.95in
Dave Love <fx@gnu.org>
parents:
diff changeset
107 \hoffset -.75in
Dave Love <fx@gnu.org>
parents:
diff changeset
108 \voffset -.745in
Dave Love <fx@gnu.org>
parents:
diff changeset
109 \font\titlefont=cmbx10 \scaledmag2
Dave Love <fx@gnu.org>
parents:
diff changeset
110 \font\headingfont=cmbx10 \scaledmag1
Dave Love <fx@gnu.org>
parents:
diff changeset
111 \font\smallfont=cmr6
Dave Love <fx@gnu.org>
parents:
diff changeset
112 \font\smallsy=cmsy6
Dave Love <fx@gnu.org>
parents:
diff changeset
113 \font\eightrm=cmr8
Dave Love <fx@gnu.org>
parents:
diff changeset
114 \font\eightbf=cmbx8
Dave Love <fx@gnu.org>
parents:
diff changeset
115 \font\eightit=cmti8
Dave Love <fx@gnu.org>
parents:
diff changeset
116 \font\eighttt=cmtt8
Dave Love <fx@gnu.org>
parents:
diff changeset
117 \font\eightmi=cmmi8
Dave Love <fx@gnu.org>
parents:
diff changeset
118 \font\eightsy=cmsy8
Dave Love <fx@gnu.org>
parents:
diff changeset
119 \textfont0=\eightrm
Dave Love <fx@gnu.org>
parents:
diff changeset
120 \textfont1=\eightmi
Dave Love <fx@gnu.org>
parents:
diff changeset
121 \textfont2=\eightsy
Dave Love <fx@gnu.org>
parents:
diff changeset
122 \def\rm{\eightrm}
Dave Love <fx@gnu.org>
parents:
diff changeset
123 \def\bf{\eightbf}
Dave Love <fx@gnu.org>
parents:
diff changeset
124 \def\it{\eightit}
Dave Love <fx@gnu.org>
parents:
diff changeset
125 \def\tt{\eighttt}
Dave Love <fx@gnu.org>
parents:
diff changeset
126 \normalbaselineskip=.8\normalbaselineskip
Dave Love <fx@gnu.org>
parents:
diff changeset
127 \normallineskip=.8\normallineskip
Dave Love <fx@gnu.org>
parents:
diff changeset
128 \normallineskiplimit=.8\normallineskiplimit
Dave Love <fx@gnu.org>
parents:
diff changeset
129 \normalbaselines\rm %make definitions take effect
Dave Love <fx@gnu.org>
parents:
diff changeset
130
Dave Love <fx@gnu.org>
parents:
diff changeset
131 \if 2\ncolumns
Dave Love <fx@gnu.org>
parents:
diff changeset
132 \let\maxcolumn=b
Dave Love <fx@gnu.org>
parents:
diff changeset
133 \footline{\hss\rm\folio\hss}
Dave Love <fx@gnu.org>
parents:
diff changeset
134 \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
Dave Love <fx@gnu.org>
parents:
diff changeset
135 \else \if 3\ncolumns
Dave Love <fx@gnu.org>
parents:
diff changeset
136 \let\maxcolumn=c
Dave Love <fx@gnu.org>
parents:
diff changeset
137 \nopagenumbers
Dave Love <fx@gnu.org>
parents:
diff changeset
138 \else
Dave Love <fx@gnu.org>
parents:
diff changeset
139 \errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
Dave Love <fx@gnu.org>
parents:
diff changeset
140 \errmessage{Illegal number of columns per page}
Dave Love <fx@gnu.org>
parents:
diff changeset
141 \fi\fi
Dave Love <fx@gnu.org>
parents:
diff changeset
142
Dave Love <fx@gnu.org>
parents:
diff changeset
143 \intercolumnskip=.46in
Dave Love <fx@gnu.org>
parents:
diff changeset
144 \def\abc{a}
Dave Love <fx@gnu.org>
parents:
diff changeset
145 \output={% %see The TeXbook page 257
Dave Love <fx@gnu.org>
parents:
diff changeset
146 % This next line is useful when designing the layout.
Dave Love <fx@gnu.org>
parents:
diff changeset
147 %\immediate\write16{Column \folio\abc\space starts with \firstmark}
Dave Love <fx@gnu.org>
parents:
diff changeset
148 \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
Dave Love <fx@gnu.org>
parents:
diff changeset
149 \else\if a\abc
Dave Love <fx@gnu.org>
parents:
diff changeset
150 \global\setbox\columna\columnbox \global\def\abc{b}
Dave Love <fx@gnu.org>
parents:
diff changeset
151 %% in case we never use \columnb (two-column mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
152 \global\setbox\columnb\hbox to -\intercolumnskip{}
Dave Love <fx@gnu.org>
parents:
diff changeset
153 \else
Dave Love <fx@gnu.org>
parents:
diff changeset
154 \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
Dave Love <fx@gnu.org>
parents:
diff changeset
155 \def\multicolumnformat{\shipout\vbox{\makeheadline
Dave Love <fx@gnu.org>
parents:
diff changeset
156 \hbox{\box\columna\hskip\intercolumnskip
Dave Love <fx@gnu.org>
parents:
diff changeset
157 \box\columnb\hskip\intercolumnskip\columnbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
158 \makefootline}\advancepageno}
Dave Love <fx@gnu.org>
parents:
diff changeset
159 \def\columnbox{\leftline{\pagebody}}
Dave Love <fx@gnu.org>
parents:
diff changeset
160
Dave Love <fx@gnu.org>
parents:
diff changeset
161 \def\bye{\par\vfill\supereject
Dave Love <fx@gnu.org>
parents:
diff changeset
162 \if a\abc \else\null\vfill\eject\fi
Dave Love <fx@gnu.org>
parents:
diff changeset
163 \if a\abc \else\null\vfill\eject\fi
Dave Love <fx@gnu.org>
parents:
diff changeset
164 \end}
Dave Love <fx@gnu.org>
parents:
diff changeset
165 \fi
Dave Love <fx@gnu.org>
parents:
diff changeset
166
Dave Love <fx@gnu.org>
parents:
diff changeset
167 % we won't be using math mode much, so redefine some of the characters
Dave Love <fx@gnu.org>
parents:
diff changeset
168 % we might want to talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
169 \catcode`\^=12
Dave Love <fx@gnu.org>
parents:
diff changeset
170 \catcode`\_=12
Dave Love <fx@gnu.org>
parents:
diff changeset
171
Dave Love <fx@gnu.org>
parents:
diff changeset
172 \chardef\\=`\\
Dave Love <fx@gnu.org>
parents:
diff changeset
173 \chardef\{=`\{
Dave Love <fx@gnu.org>
parents:
diff changeset
174 \chardef\}=`\}
Dave Love <fx@gnu.org>
parents:
diff changeset
175
Dave Love <fx@gnu.org>
parents:
diff changeset
176 \hyphenation{mini-buf-fer}
Dave Love <fx@gnu.org>
parents:
diff changeset
177
Dave Love <fx@gnu.org>
parents:
diff changeset
178 \parindent 0pt
Dave Love <fx@gnu.org>
parents:
diff changeset
179 \parskip 1ex plus .5ex minus .5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
180
Dave Love <fx@gnu.org>
parents:
diff changeset
181 \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
Dave Love <fx@gnu.org>
parents:
diff changeset
182
Dave Love <fx@gnu.org>
parents:
diff changeset
183 % newcolumn - force a new column. Use sparingly, probably only for
Dave Love <fx@gnu.org>
parents:
diff changeset
184 % the first column of a page, which should have a title anyway.
Dave Love <fx@gnu.org>
parents:
diff changeset
185 \outer\def\newcolumn{\vfill\eject}
Dave Love <fx@gnu.org>
parents:
diff changeset
186
Dave Love <fx@gnu.org>
parents:
diff changeset
187 % title - page title. Argument is title text.
Dave Love <fx@gnu.org>
parents:
diff changeset
188 \outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
Dave Love <fx@gnu.org>
parents:
diff changeset
189
Dave Love <fx@gnu.org>
parents:
diff changeset
190 % section - new major section. Argument is section name.
Dave Love <fx@gnu.org>
parents:
diff changeset
191 \outer\def\section#1{\par\filbreak
Dave Love <fx@gnu.org>
parents:
diff changeset
192 \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
Dave Love <fx@gnu.org>
parents:
diff changeset
193 \vskip 2ex plus 1ex minus 1.5ex}
Dave Love <fx@gnu.org>
parents:
diff changeset
194
Dave Love <fx@gnu.org>
parents:
diff changeset
195 \newdimen\keyindent
Dave Love <fx@gnu.org>
parents:
diff changeset
196
Dave Love <fx@gnu.org>
parents:
diff changeset
197 % beginindentedkeys...endindentedkeys - key definitions will be
Dave Love <fx@gnu.org>
parents:
diff changeset
198 % indented, but running text, typically used as headings to group
Dave Love <fx@gnu.org>
parents:
diff changeset
199 % definitions, will not.
Dave Love <fx@gnu.org>
parents:
diff changeset
200 \def\beginindentedkeys{\keyindent=1em}
Dave Love <fx@gnu.org>
parents:
diff changeset
201 \def\endindentedkeys{\keyindent=0em}
Dave Love <fx@gnu.org>
parents:
diff changeset
202 \endindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
203
Dave Love <fx@gnu.org>
parents:
diff changeset
204 % paralign - begin paragraph containing an alignment.
Dave Love <fx@gnu.org>
parents:
diff changeset
205 % If an \halign is entered while in vertical mode, a parskip is never
Dave Love <fx@gnu.org>
parents:
diff changeset
206 % inserted. Using \paralign instead of \halign solves this problem.
Dave Love <fx@gnu.org>
parents:
diff changeset
207 \def\paralign{\vskip\parskip\halign}
Dave Love <fx@gnu.org>
parents:
diff changeset
208
Dave Love <fx@gnu.org>
parents:
diff changeset
209 % \<...> - surrounds a variable name in a code example
Dave Love <fx@gnu.org>
parents:
diff changeset
210 \def\<#1>{{\it #1\/}}
Dave Love <fx@gnu.org>
parents:
diff changeset
211
Dave Love <fx@gnu.org>
parents:
diff changeset
212 % kbd - argument is characters typed literally. Like the Texinfo command.
Dave Love <fx@gnu.org>
parents:
diff changeset
213 \def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
Dave Love <fx@gnu.org>
parents:
diff changeset
214
Dave Love <fx@gnu.org>
parents:
diff changeset
215 % beginexample...endexample - surrounds literal text, such a code example.
Dave Love <fx@gnu.org>
parents:
diff changeset
216 % typeset in a typewriter font with line breaks preserved
Dave Love <fx@gnu.org>
parents:
diff changeset
217 \def\beginexample{\par\leavevmode\begingroup
Dave Love <fx@gnu.org>
parents:
diff changeset
218 \obeylines\obeyspaces\parskip0pt\tt}
Dave Love <fx@gnu.org>
parents:
diff changeset
219 {\obeyspaces\global\let =\ }
Dave Love <fx@gnu.org>
parents:
diff changeset
220 \def\endexample{\endgroup}
Dave Love <fx@gnu.org>
parents:
diff changeset
221
Dave Love <fx@gnu.org>
parents:
diff changeset
222 % key - definition of a key.
Dave Love <fx@gnu.org>
parents:
diff changeset
223 % \key{description of key}{key-name}
Dave Love <fx@gnu.org>
parents:
diff changeset
224 % prints the description left-justified, and the key-name in a \kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
225 % form near the right margin.
Dave Love <fx@gnu.org>
parents:
diff changeset
226 \def\key#1#2{\leavevmode\hbox to \hsize{\vtop
Dave Love <fx@gnu.org>
parents:
diff changeset
227 {\hsize=.75\hsize\rightskip=1em
Dave Love <fx@gnu.org>
parents:
diff changeset
228 \hskip\keyindent\relax#1}\kbd{#2}\hfil}}
Dave Love <fx@gnu.org>
parents:
diff changeset
229
Dave Love <fx@gnu.org>
parents:
diff changeset
230 \newbox\metaxbox
Dave Love <fx@gnu.org>
parents:
diff changeset
231 \setbox\metaxbox\hbox{\kbd{M-x }}
Dave Love <fx@gnu.org>
parents:
diff changeset
232 \newdimen\metaxwidth
Dave Love <fx@gnu.org>
parents:
diff changeset
233 \metaxwidth=\wd\metaxbox
Dave Love <fx@gnu.org>
parents:
diff changeset
234
Dave Love <fx@gnu.org>
parents:
diff changeset
235 % metax - definition of a M-x command.
Dave Love <fx@gnu.org>
parents:
diff changeset
236 % \metax{description of command}{M-x command-name}
Dave Love <fx@gnu.org>
parents:
diff changeset
237 % Tries to justify the beginning of the command name at the same place
Dave Love <fx@gnu.org>
parents:
diff changeset
238 % as \key starts the key name. (The "M-x " sticks out to the left.)
Dave Love <fx@gnu.org>
parents:
diff changeset
239 \def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
Dave Love <fx@gnu.org>
parents:
diff changeset
240 {\hskip\keyindent\relax#1\hfil}%
Dave Love <fx@gnu.org>
parents:
diff changeset
241 \hskip -\metaxwidth minus 1fil
Dave Love <fx@gnu.org>
parents:
diff changeset
242 \kbd{#2}\hfil}}
Dave Love <fx@gnu.org>
parents:
diff changeset
243
Dave Love <fx@gnu.org>
parents:
diff changeset
244 % threecol - like "key" but with two key names.
Dave Love <fx@gnu.org>
parents:
diff changeset
245 % for example, one for doing the action backward, and one for forward.
Dave Love <fx@gnu.org>
parents:
diff changeset
246 \def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\hfil\quad
Dave Love <fx@gnu.org>
parents:
diff changeset
247 &\kbd{#3}\hfil\quad\cr}
Dave Love <fx@gnu.org>
parents:
diff changeset
248
Dave Love <fx@gnu.org>
parents:
diff changeset
249 %**end of header
Dave Love <fx@gnu.org>
parents:
diff changeset
250
Dave Love <fx@gnu.org>
parents:
diff changeset
251
Dave Love <fx@gnu.org>
parents:
diff changeset
252 \title{GNU Emacs Reference Card}
Dave Love <fx@gnu.org>
parents:
diff changeset
253
Dave Love <fx@gnu.org>
parents:
diff changeset
254 \centerline{(for version 20)}
Dave Love <fx@gnu.org>
parents:
diff changeset
255
Dave Love <fx@gnu.org>
parents:
diff changeset
256 \section{Starting Emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
257
Dave Love <fx@gnu.org>
parents:
diff changeset
258 To enter GNU Emacs 20, just type its name: \kbd{emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
259
Dave Love <fx@gnu.org>
parents:
diff changeset
260 To read in a file to edit, see Files, below.
Dave Love <fx@gnu.org>
parents:
diff changeset
261
Dave Love <fx@gnu.org>
parents:
diff changeset
262 \section{Leaving Emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
263
Dave Love <fx@gnu.org>
parents:
diff changeset
264 \key{suspend Emacs (or iconify it under X)}{C-z}
Dave Love <fx@gnu.org>
parents:
diff changeset
265 \key{exit Emacs permanently}{C-x C-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
266
Dave Love <fx@gnu.org>
parents:
diff changeset
267 \section{Files}
Dave Love <fx@gnu.org>
parents:
diff changeset
268
Dave Love <fx@gnu.org>
parents:
diff changeset
269 \key{{\bf read} a file into Emacs}{C-x C-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
270 \key{{\bf save} a file back to disk}{C-x C-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
271 \key{save {\bf all} files}{C-x s}
Dave Love <fx@gnu.org>
parents:
diff changeset
272 \key{{\bf insert} contents of another file into this buffer}{C-x i}
Dave Love <fx@gnu.org>
parents:
diff changeset
273 \key{replace this file with the file you really want}{C-x C-v}
Dave Love <fx@gnu.org>
parents:
diff changeset
274 \key{write buffer to a specified file}{C-x C-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
275 \key{version control checkin/checkout}{C-x C-q}
Dave Love <fx@gnu.org>
parents:
diff changeset
276
Dave Love <fx@gnu.org>
parents:
diff changeset
277 \section{Getting Help}
Dave Love <fx@gnu.org>
parents:
diff changeset
278
Dave Love <fx@gnu.org>
parents:
diff changeset
279 The help system is simple. Type \kbd{C-h} (or \kbd{F1}) and follow
Dave Love <fx@gnu.org>
parents:
diff changeset
280 the directions. If you are a first-time user, type \kbd{C-h t} for a
Dave Love <fx@gnu.org>
parents:
diff changeset
281 {\bf tutorial}.
Dave Love <fx@gnu.org>
parents:
diff changeset
282
Dave Love <fx@gnu.org>
parents:
diff changeset
283 \key{remove help window}{C-x 1}
Dave Love <fx@gnu.org>
parents:
diff changeset
284 \key{scroll help window}{C-M-v}
Dave Love <fx@gnu.org>
parents:
diff changeset
285
Dave Love <fx@gnu.org>
parents:
diff changeset
286 \key{apropos: show commands matching a string}{C-h a}
Dave Love <fx@gnu.org>
parents:
diff changeset
287 \key{show the function a key runs}{C-h c}
Dave Love <fx@gnu.org>
parents:
diff changeset
288 \key{describe a function}{C-h f}
Dave Love <fx@gnu.org>
parents:
diff changeset
289 \key{get mode-specific information}{C-h m}
Dave Love <fx@gnu.org>
parents:
diff changeset
290
Dave Love <fx@gnu.org>
parents:
diff changeset
291 \section{Error Recovery}
Dave Love <fx@gnu.org>
parents:
diff changeset
292
Dave Love <fx@gnu.org>
parents:
diff changeset
293 \key{{\bf abort} partially typed or executing command}{C-g}
Dave Love <fx@gnu.org>
parents:
diff changeset
294 \metax{{\bf recover} a file lost by a system crash}{M-x recover-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
295 \key{{\bf undo} an unwanted change}{C-x u {\rm or} C-_}
Dave Love <fx@gnu.org>
parents:
diff changeset
296 \metax{restore a buffer to its original contents}{M-x revert-buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
297 \key{redraw garbaged screen}{C-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
298
Dave Love <fx@gnu.org>
parents:
diff changeset
299 \section{Incremental Search}
Dave Love <fx@gnu.org>
parents:
diff changeset
300
Dave Love <fx@gnu.org>
parents:
diff changeset
301 \key{search forward}{C-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
302 \key{search backward}{C-r}
Dave Love <fx@gnu.org>
parents:
diff changeset
303 \key{regular expression search}{C-M-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
304 \key{reverse regular expression search}{C-M-r}
Dave Love <fx@gnu.org>
parents:
diff changeset
305
Dave Love <fx@gnu.org>
parents:
diff changeset
306 \key{select previous search string}{M-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
307 \key{select next later search string}{M-n}
Dave Love <fx@gnu.org>
parents:
diff changeset
308 \key{exit incremental search}{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
309 \key{undo effect of last character}{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
310 \key{abort current search}{C-g}
Dave Love <fx@gnu.org>
parents:
diff changeset
311
Dave Love <fx@gnu.org>
parents:
diff changeset
312 Use \kbd{C-s} or \kbd{C-r} again to repeat the search in either direction.
Dave Love <fx@gnu.org>
parents:
diff changeset
313 If Emacs is still searching, \kbd{C-g} cancels only the part not done.
Dave Love <fx@gnu.org>
parents:
diff changeset
314
Dave Love <fx@gnu.org>
parents:
diff changeset
315 \shortcopyrightnotice
Dave Love <fx@gnu.org>
parents:
diff changeset
316
Dave Love <fx@gnu.org>
parents:
diff changeset
317 \section{Motion}
Dave Love <fx@gnu.org>
parents:
diff changeset
318
Dave Love <fx@gnu.org>
parents:
diff changeset
319 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
320 \threecol{{\bf entity to move over}}{{\bf backward}}{{\bf forward}}
Dave Love <fx@gnu.org>
parents:
diff changeset
321 \threecol{character}{C-b}{C-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
322 \threecol{word}{M-b}{M-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
323 \threecol{line}{C-p}{C-n}
Dave Love <fx@gnu.org>
parents:
diff changeset
324 \threecol{go to line beginning (or end)}{C-a}{C-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
325 \threecol{sentence}{M-a}{M-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
326 \threecol{paragraph}{M-\{}{M-\}}
Dave Love <fx@gnu.org>
parents:
diff changeset
327 \threecol{page}{C-x [}{C-x ]}
Dave Love <fx@gnu.org>
parents:
diff changeset
328 \threecol{sexp}{C-M-b}{C-M-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
329 \threecol{function}{C-M-a}{C-M-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
330 \threecol{go to buffer beginning (or end)}{M-<}{M->}
Dave Love <fx@gnu.org>
parents:
diff changeset
331 }
Dave Love <fx@gnu.org>
parents:
diff changeset
332
Dave Love <fx@gnu.org>
parents:
diff changeset
333 \key{scroll to next screen}{C-v}
Dave Love <fx@gnu.org>
parents:
diff changeset
334 \key{scroll to previous screen}{M-v}
Dave Love <fx@gnu.org>
parents:
diff changeset
335 \key{scroll left}{C-x <}
Dave Love <fx@gnu.org>
parents:
diff changeset
336 \key{scroll right}{C-x >}
Dave Love <fx@gnu.org>
parents:
diff changeset
337 \key{scroll current line to center of screen}{C-u C-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
338
Dave Love <fx@gnu.org>
parents:
diff changeset
339 \section{Killing and Deleting}
Dave Love <fx@gnu.org>
parents:
diff changeset
340
Dave Love <fx@gnu.org>
parents:
diff changeset
341 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
342 \threecol{{\bf entity to kill}}{{\bf backward}}{{\bf forward}}
Dave Love <fx@gnu.org>
parents:
diff changeset
343 \threecol{character (delete, not kill)}{DEL}{C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
344 \threecol{word}{M-DEL}{M-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
345 \threecol{line (to end of)}{M-0 C-k}{C-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
346 \threecol{sentence}{C-x DEL}{M-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
347 \threecol{sexp}{M-- C-M-k}{C-M-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
348 }
Dave Love <fx@gnu.org>
parents:
diff changeset
349
Dave Love <fx@gnu.org>
parents:
diff changeset
350 \key{kill {\bf region}}{C-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
351 \key{copy region to kill ring}{M-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
352 \key{kill through next occurrence of {\it char}}{M-z {\it char}}
Dave Love <fx@gnu.org>
parents:
diff changeset
353
Dave Love <fx@gnu.org>
parents:
diff changeset
354 \key{yank back last thing killed}{C-y}
Dave Love <fx@gnu.org>
parents:
diff changeset
355 \key{replace last yank with previous kill}{M-y}
Dave Love <fx@gnu.org>
parents:
diff changeset
356
Dave Love <fx@gnu.org>
parents:
diff changeset
357 \section{Marking}
Dave Love <fx@gnu.org>
parents:
diff changeset
358
Dave Love <fx@gnu.org>
parents:
diff changeset
359 \key{set mark here}{C-@ {\rm or} C-SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
360 \key{exchange point and mark}{C-x C-x}
Dave Love <fx@gnu.org>
parents:
diff changeset
361
Dave Love <fx@gnu.org>
parents:
diff changeset
362 \key{set mark {\it arg\/} {\bf words} away}{M-@}
Dave Love <fx@gnu.org>
parents:
diff changeset
363 \key{mark {\bf paragraph}}{M-h}
Dave Love <fx@gnu.org>
parents:
diff changeset
364 \key{mark {\bf page}}{C-x C-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
365 \key{mark {\bf sexp}}{C-M-@}
Dave Love <fx@gnu.org>
parents:
diff changeset
366 \key{mark {\bf function}}{C-M-h}
Dave Love <fx@gnu.org>
parents:
diff changeset
367 \key{mark entire {\bf buffer}}{C-x h}
Dave Love <fx@gnu.org>
parents:
diff changeset
368
Dave Love <fx@gnu.org>
parents:
diff changeset
369 \section{Query Replace}
Dave Love <fx@gnu.org>
parents:
diff changeset
370
Dave Love <fx@gnu.org>
parents:
diff changeset
371 \key{interactively replace a text string}{M-\%}
Dave Love <fx@gnu.org>
parents:
diff changeset
372 \metax{using regular expressions}{M-x query-replace-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
373
Dave Love <fx@gnu.org>
parents:
diff changeset
374 Valid responses in query-replace mode are
Dave Love <fx@gnu.org>
parents:
diff changeset
375
Dave Love <fx@gnu.org>
parents:
diff changeset
376 \key{{\bf replace} this one, go on to next}{SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
377 \key{replace this one, don't move}{,}
Dave Love <fx@gnu.org>
parents:
diff changeset
378 \key{{\bf skip} to next without replacing}{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
379 \key{replace all remaining matches}{!}
Dave Love <fx@gnu.org>
parents:
diff changeset
380 \key{{\bf back up} to the previous match}{^}
Dave Love <fx@gnu.org>
parents:
diff changeset
381 \key{{\bf exit} query-replace}{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
382 \key{enter recursive edit (\kbd{C-M-c} to exit)}{C-r}
Dave Love <fx@gnu.org>
parents:
diff changeset
383
Dave Love <fx@gnu.org>
parents:
diff changeset
384 \section{Multiple Windows}
Dave Love <fx@gnu.org>
parents:
diff changeset
385
Dave Love <fx@gnu.org>
parents:
diff changeset
386 When two commands are shown, the second is for ``other frame.''
Dave Love <fx@gnu.org>
parents:
diff changeset
387
Dave Love <fx@gnu.org>
parents:
diff changeset
388 \key{delete all other windows}{C-x 1}
Dave Love <fx@gnu.org>
parents:
diff changeset
389
Dave Love <fx@gnu.org>
parents:
diff changeset
390 {\setbox0=\hbox{\kbd{0}}\advance\hsize by 0\wd0
Dave Love <fx@gnu.org>
parents:
diff changeset
391 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
392 \threecol{split window, above and below}{C-x 2\ \ \ \ }{C-x 5 2}
Dave Love <fx@gnu.org>
parents:
diff changeset
393 \threecol{delete this window}{C-x 0\ \ \ \ }{C-x 5 0}
Dave Love <fx@gnu.org>
parents:
diff changeset
394 }}
Dave Love <fx@gnu.org>
parents:
diff changeset
395 \key{split window, side by side}{C-x 3}
Dave Love <fx@gnu.org>
parents:
diff changeset
396
Dave Love <fx@gnu.org>
parents:
diff changeset
397 \key{scroll other window}{C-M-v}
Dave Love <fx@gnu.org>
parents:
diff changeset
398
Dave Love <fx@gnu.org>
parents:
diff changeset
399 {\setbox0=\hbox{\kbd{0}}\advance\hsize by 2\wd0
Dave Love <fx@gnu.org>
parents:
diff changeset
400 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
401 \threecol{switch cursor to another window}{C-x o}{C-x 5 o}
Dave Love <fx@gnu.org>
parents:
diff changeset
402
Dave Love <fx@gnu.org>
parents:
diff changeset
403 \threecol{select buffer in other window}{C-x 4 b}{C-x 5 b}
Dave Love <fx@gnu.org>
parents:
diff changeset
404 \threecol{display buffer in other window}{C-x 4 C-o}{C-x 5 C-o}
Dave Love <fx@gnu.org>
parents:
diff changeset
405 \threecol{find file in other window}{C-x 4 f}{C-x 5 f}
Dave Love <fx@gnu.org>
parents:
diff changeset
406 \threecol{find file read-only in other window}{C-x 4 r}{C-x 5 r}
Dave Love <fx@gnu.org>
parents:
diff changeset
407 \threecol{run Dired in other window}{C-x 4 d}{C-x 5 d}
Dave Love <fx@gnu.org>
parents:
diff changeset
408 \threecol{find tag in other window}{C-x 4 .}{C-x 5 .}
Dave Love <fx@gnu.org>
parents:
diff changeset
409 }}
Dave Love <fx@gnu.org>
parents:
diff changeset
410
Dave Love <fx@gnu.org>
parents:
diff changeset
411 \key{grow window taller}{C-x ^}
Dave Love <fx@gnu.org>
parents:
diff changeset
412 \key{shrink window narrower}{C-x \{}
Dave Love <fx@gnu.org>
parents:
diff changeset
413 \key{grow window wider}{C-x \}}
Dave Love <fx@gnu.org>
parents:
diff changeset
414
Dave Love <fx@gnu.org>
parents:
diff changeset
415 \section{Formatting}
Dave Love <fx@gnu.org>
parents:
diff changeset
416
Dave Love <fx@gnu.org>
parents:
diff changeset
417 \key{indent current {\bf line} (mode-dependent)}{TAB}
Dave Love <fx@gnu.org>
parents:
diff changeset
418 \key{indent {\bf region} (mode-dependent)}{C-M-\\}
Dave Love <fx@gnu.org>
parents:
diff changeset
419 \key{indent {\bf sexp} (mode-dependent)}{C-M-q}
Dave Love <fx@gnu.org>
parents:
diff changeset
420 \key{indent region rigidly {\it arg\/} columns}{C-x TAB}
Dave Love <fx@gnu.org>
parents:
diff changeset
421
Dave Love <fx@gnu.org>
parents:
diff changeset
422 \key{insert newline after point}{C-o}
Dave Love <fx@gnu.org>
parents:
diff changeset
423 \key{move rest of line vertically down}{C-M-o}
Dave Love <fx@gnu.org>
parents:
diff changeset
424 \key{delete blank lines around point}{C-x C-o}
Dave Love <fx@gnu.org>
parents:
diff changeset
425 \key{join line with previous (with arg, next)}{M-^}
Dave Love <fx@gnu.org>
parents:
diff changeset
426 \key{delete all white space around point}{M-\\}
Dave Love <fx@gnu.org>
parents:
diff changeset
427 \key{put exactly one space at point}{M-SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
428
Dave Love <fx@gnu.org>
parents:
diff changeset
429 \key{fill paragraph}{M-q}
Dave Love <fx@gnu.org>
parents:
diff changeset
430 \key{set fill column}{C-x f}
Dave Love <fx@gnu.org>
parents:
diff changeset
431 \key{set prefix each line starts with}{C-x .}
Dave Love <fx@gnu.org>
parents:
diff changeset
432
Dave Love <fx@gnu.org>
parents:
diff changeset
433 \key{set face}{M-g}
Dave Love <fx@gnu.org>
parents:
diff changeset
434
Dave Love <fx@gnu.org>
parents:
diff changeset
435 \section{Case Change}
Dave Love <fx@gnu.org>
parents:
diff changeset
436
Dave Love <fx@gnu.org>
parents:
diff changeset
437 \key{uppercase word}{M-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
438 \key{lowercase word}{M-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
439 \key{capitalize word}{M-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
440
Dave Love <fx@gnu.org>
parents:
diff changeset
441 \key{uppercase region}{C-x C-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
442 \key{lowercase region}{C-x C-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
443
Dave Love <fx@gnu.org>
parents:
diff changeset
444 \section{The Minibuffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
445
Dave Love <fx@gnu.org>
parents:
diff changeset
446 The following keys are defined in the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
447
Dave Love <fx@gnu.org>
parents:
diff changeset
448 \key{complete as much as possible}{TAB}
Dave Love <fx@gnu.org>
parents:
diff changeset
449 \key{complete up to one word}{SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
450 \key{complete and execute}{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
451 \key{show possible completions}{?}
Dave Love <fx@gnu.org>
parents:
diff changeset
452 \key{fetch previous minibuffer input}{M-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
453 \key{fetch later minibuffer input or default}{M-n}
Dave Love <fx@gnu.org>
parents:
diff changeset
454 \key{regexp search backward through history}{M-r}
Dave Love <fx@gnu.org>
parents:
diff changeset
455 \key{regexp search forward through history}{M-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
456 \key{abort command}{C-g}
Dave Love <fx@gnu.org>
parents:
diff changeset
457
Dave Love <fx@gnu.org>
parents:
diff changeset
458 Type \kbd{C-x ESC ESC} to edit and repeat the last command that used the
Dave Love <fx@gnu.org>
parents:
diff changeset
459 minibuffer. Type \kbd{F10} to activate the menu bar using the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
460
Dave Love <fx@gnu.org>
parents:
diff changeset
461 \newcolumn
Dave Love <fx@gnu.org>
parents:
diff changeset
462 \title{GNU Emacs Reference Card}
Dave Love <fx@gnu.org>
parents:
diff changeset
463
Dave Love <fx@gnu.org>
parents:
diff changeset
464 \section{Buffers}
Dave Love <fx@gnu.org>
parents:
diff changeset
465
Dave Love <fx@gnu.org>
parents:
diff changeset
466 \key{select another buffer}{C-x b}
Dave Love <fx@gnu.org>
parents:
diff changeset
467 \key{list all buffers}{C-x C-b}
Dave Love <fx@gnu.org>
parents:
diff changeset
468 \key{kill a buffer}{C-x k}
Dave Love <fx@gnu.org>
parents:
diff changeset
469
Dave Love <fx@gnu.org>
parents:
diff changeset
470 \section{Transposing}
Dave Love <fx@gnu.org>
parents:
diff changeset
471
Dave Love <fx@gnu.org>
parents:
diff changeset
472 \key{transpose {\bf characters}}{C-t}
Dave Love <fx@gnu.org>
parents:
diff changeset
473 \key{transpose {\bf words}}{M-t}
Dave Love <fx@gnu.org>
parents:
diff changeset
474 \key{transpose {\bf lines}}{C-x C-t}
Dave Love <fx@gnu.org>
parents:
diff changeset
475 \key{transpose {\bf sexps}}{C-M-t}
Dave Love <fx@gnu.org>
parents:
diff changeset
476
Dave Love <fx@gnu.org>
parents:
diff changeset
477 \section{Spelling Check}
Dave Love <fx@gnu.org>
parents:
diff changeset
478
Dave Love <fx@gnu.org>
parents:
diff changeset
479 \key{check spelling of current word}{M-\$}
Dave Love <fx@gnu.org>
parents:
diff changeset
480 \metax{check spelling of all words in region}{M-x ispell-region}
Dave Love <fx@gnu.org>
parents:
diff changeset
481 \metax{check spelling of entire buffer}{M-x ispell-buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
482
Dave Love <fx@gnu.org>
parents:
diff changeset
483 \section{Tags}
Dave Love <fx@gnu.org>
parents:
diff changeset
484
Dave Love <fx@gnu.org>
parents:
diff changeset
485 \key{find a tag (a definition)}{M-.}
Dave Love <fx@gnu.org>
parents:
diff changeset
486 \key{find next occurrence of tag}{C-u M-.}
Dave Love <fx@gnu.org>
parents:
diff changeset
487 \metax{specify a new tags file}{M-x visit-tags-table}
Dave Love <fx@gnu.org>
parents:
diff changeset
488
Dave Love <fx@gnu.org>
parents:
diff changeset
489 \metax{regexp search on all files in tags table}{M-x tags-search}
Dave Love <fx@gnu.org>
parents:
diff changeset
490 \metax{run query-replace on all the files}{M-x tags-query-replace}
Dave Love <fx@gnu.org>
parents:
diff changeset
491 \key{continue last tags search or query-replace}{M-,}
Dave Love <fx@gnu.org>
parents:
diff changeset
492
Dave Love <fx@gnu.org>
parents:
diff changeset
493 \section{Shells}
Dave Love <fx@gnu.org>
parents:
diff changeset
494
Dave Love <fx@gnu.org>
parents:
diff changeset
495 \key{execute a shell command}{M-!}
Dave Love <fx@gnu.org>
parents:
diff changeset
496 \key{run a shell command on the region}{M-|}
Dave Love <fx@gnu.org>
parents:
diff changeset
497 \key{filter region through a shell command}{C-u M-|}
Dave Love <fx@gnu.org>
parents:
diff changeset
498 \key{start a shell in window \kbd{*shell*}}{M-x shell}
Dave Love <fx@gnu.org>
parents:
diff changeset
499
Dave Love <fx@gnu.org>
parents:
diff changeset
500 \section{Rectangles}
Dave Love <fx@gnu.org>
parents:
diff changeset
501
Dave Love <fx@gnu.org>
parents:
diff changeset
502 \key{copy rectangle to register}{C-x r r}
Dave Love <fx@gnu.org>
parents:
diff changeset
503 \key{kill rectangle}{C-x r k}
Dave Love <fx@gnu.org>
parents:
diff changeset
504 \key{yank rectangle}{C-x r y}
Dave Love <fx@gnu.org>
parents:
diff changeset
505 \key{open rectangle, shifting text right}{C-x r o}
Dave Love <fx@gnu.org>
parents:
diff changeset
506 \key{blank out rectangle}{C-x r c}
Dave Love <fx@gnu.org>
parents:
diff changeset
507 \key{prefix each line with a string}{C-x r t}
Dave Love <fx@gnu.org>
parents:
diff changeset
508
Dave Love <fx@gnu.org>
parents:
diff changeset
509 \section{Abbrevs}
Dave Love <fx@gnu.org>
parents:
diff changeset
510
Dave Love <fx@gnu.org>
parents:
diff changeset
511 \key{add global abbrev}{C-x a g}
Dave Love <fx@gnu.org>
parents:
diff changeset
512 \key{add mode-local abbrev}{C-x a l}
Dave Love <fx@gnu.org>
parents:
diff changeset
513 \key{add global expansion for this abbrev}{C-x a i g}
Dave Love <fx@gnu.org>
parents:
diff changeset
514 \key{add mode-local expansion for this abbrev}{C-x a i l}
Dave Love <fx@gnu.org>
parents:
diff changeset
515 \key{explicitly expand abbrev}{C-x a e}
Dave Love <fx@gnu.org>
parents:
diff changeset
516
Dave Love <fx@gnu.org>
parents:
diff changeset
517 \key{expand previous word dynamically}{M-/}
Dave Love <fx@gnu.org>
parents:
diff changeset
518
Dave Love <fx@gnu.org>
parents:
diff changeset
519 \section{Regular Expressions}
Dave Love <fx@gnu.org>
parents:
diff changeset
520
Dave Love <fx@gnu.org>
parents:
diff changeset
521 \key{any single character except a newline}{. {\rm(dot)}}
Dave Love <fx@gnu.org>
parents:
diff changeset
522 \key{zero or more repeats}{*}
Dave Love <fx@gnu.org>
parents:
diff changeset
523 \key{one or more repeats}{+}
Dave Love <fx@gnu.org>
parents:
diff changeset
524 \key{zero or one repeat}{?}
Dave Love <fx@gnu.org>
parents:
diff changeset
525 \key{quote regular expression special character {\it c\/}}{\\{\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
526 \key{alternative (``or'')}{\\|}
Dave Love <fx@gnu.org>
parents:
diff changeset
527 \key{grouping}{\\( {\rm$\ldots$} \\)}
Dave Love <fx@gnu.org>
parents:
diff changeset
528 \key{same text as {\it n\/}th group}{\\{\it n}}
Dave Love <fx@gnu.org>
parents:
diff changeset
529 \key{at word break}{\\b}
Dave Love <fx@gnu.org>
parents:
diff changeset
530 \key{not at word break}{\\B}
Dave Love <fx@gnu.org>
parents:
diff changeset
531
Dave Love <fx@gnu.org>
parents:
diff changeset
532 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
533 \threecol{{\bf entity}}{{\bf match start}}{{\bf match end}}
Dave Love <fx@gnu.org>
parents:
diff changeset
534 \threecol{line}{^}{\$}
Dave Love <fx@gnu.org>
parents:
diff changeset
535 \threecol{word}{\\<}{\\>}
Dave Love <fx@gnu.org>
parents:
diff changeset
536 \threecol{buffer}{\\`}{\\'}
Dave Love <fx@gnu.org>
parents:
diff changeset
537
Dave Love <fx@gnu.org>
parents:
diff changeset
538 \threecol{{\bf class of characters}}{{\bf match these}}{{\bf match others}}
Dave Love <fx@gnu.org>
parents:
diff changeset
539 \threecol{explicit set}{[ {\rm$\ldots$} ]}{[^ {\rm$\ldots$} ]}
Dave Love <fx@gnu.org>
parents:
diff changeset
540 \threecol{word-syntax character}{\\w}{\\W}
Dave Love <fx@gnu.org>
parents:
diff changeset
541 \threecol{character with syntax {\it c}}{\\s{\it c}}{\\S{\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
542 }
Dave Love <fx@gnu.org>
parents:
diff changeset
543
Dave Love <fx@gnu.org>
parents:
diff changeset
544 \section{International Character Sets}
Dave Love <fx@gnu.org>
parents:
diff changeset
545
Dave Love <fx@gnu.org>
parents:
diff changeset
546 \metax{specify principal language}{M-x set-language-environment}
Dave Love <fx@gnu.org>
parents:
diff changeset
547 \metax{show all input methods}{M-x list-input-methods}
Dave Love <fx@gnu.org>
parents:
diff changeset
548 \key{enable or disable input method}{C-\\}
Dave Love <fx@gnu.org>
parents:
diff changeset
549 \key{set coding system for next command}{C-x RET c}
Dave Love <fx@gnu.org>
parents:
diff changeset
550 \metax{show all coding systems}{M-x list-coding-systems}
Dave Love <fx@gnu.org>
parents:
diff changeset
551 \metax{choose preferred coding system}{M-x prefer-coding-system}
Dave Love <fx@gnu.org>
parents:
diff changeset
552
Dave Love <fx@gnu.org>
parents:
diff changeset
553 \section{Info}
Dave Love <fx@gnu.org>
parents:
diff changeset
554
Dave Love <fx@gnu.org>
parents:
diff changeset
555 \key{enter the Info documentation reader}{C-h i}
Dave Love <fx@gnu.org>
parents:
diff changeset
556 \key{find specified function or variable in Info}{C-h C-i}
Dave Love <fx@gnu.org>
parents:
diff changeset
557 \beginindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
558
Dave Love <fx@gnu.org>
parents:
diff changeset
559 Moving within a node:
Dave Love <fx@gnu.org>
parents:
diff changeset
560
Dave Love <fx@gnu.org>
parents:
diff changeset
561 \key{scroll forward}{SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
562 \key{scroll reverse}{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
563 \key{beginning of node}{. {\rm (dot)}}
Dave Love <fx@gnu.org>
parents:
diff changeset
564
Dave Love <fx@gnu.org>
parents:
diff changeset
565 Moving between nodes:
Dave Love <fx@gnu.org>
parents:
diff changeset
566
Dave Love <fx@gnu.org>
parents:
diff changeset
567 \key{{\bf next} node}{n}
Dave Love <fx@gnu.org>
parents:
diff changeset
568 \key{{\bf previous} node}{p}
Dave Love <fx@gnu.org>
parents:
diff changeset
569 \key{move {\bf up}}{u}
Dave Love <fx@gnu.org>
parents:
diff changeset
570 \key{select menu item by name}{m}
Dave Love <fx@gnu.org>
parents:
diff changeset
571 \key{select {\it n\/}th menu item by number (1--9)}{{\it n}}
Dave Love <fx@gnu.org>
parents:
diff changeset
572 \key{follow cross reference (return with \kbd{l})}{f}
Dave Love <fx@gnu.org>
parents:
diff changeset
573 \key{return to last node you saw}{l}
Dave Love <fx@gnu.org>
parents:
diff changeset
574 \key{return to directory node}{d}
Dave Love <fx@gnu.org>
parents:
diff changeset
575 \key{go to any node by name}{g}
Dave Love <fx@gnu.org>
parents:
diff changeset
576
Dave Love <fx@gnu.org>
parents:
diff changeset
577 Other:
Dave Love <fx@gnu.org>
parents:
diff changeset
578
Dave Love <fx@gnu.org>
parents:
diff changeset
579 \key{run Info {\bf tutorial}}{h}
Dave Love <fx@gnu.org>
parents:
diff changeset
580 \key{{\bf quit} Info}{q}
Dave Love <fx@gnu.org>
parents:
diff changeset
581 \key{search nodes for regexp}{M-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
582
Dave Love <fx@gnu.org>
parents:
diff changeset
583 \endindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
584
Dave Love <fx@gnu.org>
parents:
diff changeset
585 \section{Registers}
Dave Love <fx@gnu.org>
parents:
diff changeset
586
Dave Love <fx@gnu.org>
parents:
diff changeset
587 \key{save region in register}{C-x r s}
Dave Love <fx@gnu.org>
parents:
diff changeset
588 \key{insert register contents into buffer}{C-x r i}
Dave Love <fx@gnu.org>
parents:
diff changeset
589
Dave Love <fx@gnu.org>
parents:
diff changeset
590 \key{save value of point in register}{C-x r SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
591 \key{jump to point saved in register}{C-x r j}
Dave Love <fx@gnu.org>
parents:
diff changeset
592
Dave Love <fx@gnu.org>
parents:
diff changeset
593 \section{Keyboard Macros}
Dave Love <fx@gnu.org>
parents:
diff changeset
594
Dave Love <fx@gnu.org>
parents:
diff changeset
595 \key{{\bf start} defining a keyboard macro}{C-x (}
Dave Love <fx@gnu.org>
parents:
diff changeset
596 \key{{\bf end} keyboard macro definition}{C-x )}
Dave Love <fx@gnu.org>
parents:
diff changeset
597 \key{{\bf execute} last-defined keyboard macro}{C-x e}
Dave Love <fx@gnu.org>
parents:
diff changeset
598 \key{append to last keyboard macro}{C-u C-x (}
Dave Love <fx@gnu.org>
parents:
diff changeset
599 \metax{name last keyboard macro}{M-x name-last-kbd-macro}
Dave Love <fx@gnu.org>
parents:
diff changeset
600 \metax{insert Lisp definition in buffer}{M-x insert-kbd-macro}
Dave Love <fx@gnu.org>
parents:
diff changeset
601
Dave Love <fx@gnu.org>
parents:
diff changeset
602 \section{Commands Dealing with Emacs Lisp}
Dave Love <fx@gnu.org>
parents:
diff changeset
603
Dave Love <fx@gnu.org>
parents:
diff changeset
604 \key{eval {\bf sexp} before point}{C-x C-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
605 \key{eval current {\bf defun}}{C-M-x}
Dave Love <fx@gnu.org>
parents:
diff changeset
606 \metax{eval {\bf region}}{M-x eval-region}
Dave Love <fx@gnu.org>
parents:
diff changeset
607 \key{read and eval minibuffer}{M-:}
Dave Love <fx@gnu.org>
parents:
diff changeset
608 \metax{load from standard system directory}{M-x load-library}
Dave Love <fx@gnu.org>
parents:
diff changeset
609
Dave Love <fx@gnu.org>
parents:
diff changeset
610 \section{Simple Customization}
Dave Love <fx@gnu.org>
parents:
diff changeset
611
Dave Love <fx@gnu.org>
parents:
diff changeset
612 \metax{customize variables and faces}{M-x customize}
Dave Love <fx@gnu.org>
parents:
diff changeset
613
Dave Love <fx@gnu.org>
parents:
diff changeset
614 % The intended audience here is the person who wants to make simple
Dave Love <fx@gnu.org>
parents:
diff changeset
615 % customizations and knows Lisp syntax.
Dave Love <fx@gnu.org>
parents:
diff changeset
616
Dave Love <fx@gnu.org>
parents:
diff changeset
617 Making global key bindings in Emacs Lisp (examples):
Dave Love <fx@gnu.org>
parents:
diff changeset
618
Dave Love <fx@gnu.org>
parents:
diff changeset
619 \beginexample%
Dave Love <fx@gnu.org>
parents:
diff changeset
620 (global-set-key "\\C-cg" 'goto-line)
Dave Love <fx@gnu.org>
parents:
diff changeset
621 (global-set-key "\\M-\#" 'query-replace-regexp)
Dave Love <fx@gnu.org>
parents:
diff changeset
622 \endexample
Dave Love <fx@gnu.org>
parents:
diff changeset
623
Dave Love <fx@gnu.org>
parents:
diff changeset
624 \section{Writing Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
625
Dave Love <fx@gnu.org>
parents:
diff changeset
626 \beginexample%
Dave Love <fx@gnu.org>
parents:
diff changeset
627 (defun \<command-name> (\<args>)
Dave Love <fx@gnu.org>
parents:
diff changeset
628 "\<documentation>" (interactive "\<template>")
Dave Love <fx@gnu.org>
parents:
diff changeset
629 \<body>)
Dave Love <fx@gnu.org>
parents:
diff changeset
630 \endexample
Dave Love <fx@gnu.org>
parents:
diff changeset
631
Dave Love <fx@gnu.org>
parents:
diff changeset
632 An example:
Dave Love <fx@gnu.org>
parents:
diff changeset
633
Dave Love <fx@gnu.org>
parents:
diff changeset
634 \beginexample%
Dave Love <fx@gnu.org>
parents:
diff changeset
635 (defun this-line-to-top-of-window (line)
Dave Love <fx@gnu.org>
parents:
diff changeset
636 "Reposition line point is on to top of window.
Dave Love <fx@gnu.org>
parents:
diff changeset
637 With ARG, put point on line ARG."
Dave Love <fx@gnu.org>
parents:
diff changeset
638 (interactive "P")
Dave Love <fx@gnu.org>
parents:
diff changeset
639 (recenter (if (null line)
Dave Love <fx@gnu.org>
parents:
diff changeset
640 0
Dave Love <fx@gnu.org>
parents:
diff changeset
641 (prefix-numeric-value line))))
Dave Love <fx@gnu.org>
parents:
diff changeset
642 \endexample
Dave Love <fx@gnu.org>
parents:
diff changeset
643
Dave Love <fx@gnu.org>
parents:
diff changeset
644 The \kbd{interactive} spec says how to read arguments interactively.
Dave Love <fx@gnu.org>
parents:
diff changeset
645 Type \kbd{C-h f interactive} for more details.
Dave Love <fx@gnu.org>
parents:
diff changeset
646
Dave Love <fx@gnu.org>
parents:
diff changeset
647 \copyrightnotice
Dave Love <fx@gnu.org>
parents:
diff changeset
648
Dave Love <fx@gnu.org>
parents:
diff changeset
649 \bye
Dave Love <fx@gnu.org>
parents:
diff changeset
650
Dave Love <fx@gnu.org>
parents:
diff changeset
651 % Local variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
652 % compile-command: "tex refcard"
Dave Love <fx@gnu.org>
parents:
diff changeset
653 % End: