annotate etc/viperCard.tex @ 67086:7ae3d744378e

(Custom-reset-standard): Make it handle Custom group buffers correctly. (It used to throw an error in such buffers.) Make it ask for confirmation in group buffers and other Custom buffers containing more than one customization item.
author Luc Teirlinck <teirllm@auburn.edu>
date Tue, 22 Nov 2005 23:28:28 +0000
parents f05a048483cc
children e8a3fb527b77 2d92f5c9d6ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43258
f3408a98d0f3 Update Emacs version 20.x -> 21.x.
Eli Zaretskii <eliz@gnu.org>
parents: 39401
diff changeset
1 % ViperCard -- The Reference Card for Viper under GNU Emacs 21 and XEmacs 20
25853
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 or 2 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=2
Dave Love <fx@gnu.org>
parents:
diff changeset
9
65088
f05a048483cc Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64083
diff changeset
10 % Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004,
f05a048483cc Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64083
diff changeset
11 % 2005 Free Software Foundation, Inc.
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
12
Dave Love <fx@gnu.org>
parents:
diff changeset
13 % This file is part of GNU Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 % This file is distributed in the hope that it will be useful,
Dave Love <fx@gnu.org>
parents:
diff changeset
16 % but WITHOUT ANY WARRANTY. No author or distributor
Dave Love <fx@gnu.org>
parents:
diff changeset
17 % accepts responsibility to anyone for the consequences of using it
Dave Love <fx@gnu.org>
parents:
diff changeset
18 % or for whether it serves any particular purpose or describes
Dave Love <fx@gnu.org>
parents:
diff changeset
19 % any piece of software unless they say so in writing. Refer to the
Dave Love <fx@gnu.org>
parents:
diff changeset
20 % GNU Emacs General Public License for full details.
Dave Love <fx@gnu.org>
parents:
diff changeset
21 %
Dave Love <fx@gnu.org>
parents:
diff changeset
22 % Permission is granted to copy, modify and redistribute this source
Dave Love <fx@gnu.org>
parents:
diff changeset
23 % file provided the copyright notice and permission notices are
Dave Love <fx@gnu.org>
parents:
diff changeset
24 % preserved on all copies.
Dave Love <fx@gnu.org>
parents:
diff changeset
25 %
Dave Love <fx@gnu.org>
parents:
diff changeset
26 % Permission is granted to process this file through TeX and print the
Dave Love <fx@gnu.org>
parents:
diff changeset
27 % results, provided the printed document carries copyright and
Dave Love <fx@gnu.org>
parents:
diff changeset
28 % permission notices identical to the ones below.
Dave Love <fx@gnu.org>
parents:
diff changeset
29
Dave Love <fx@gnu.org>
parents:
diff changeset
30 % This file is intended to be processed by plain TeX (TeX82).
Dave Love <fx@gnu.org>
parents:
diff changeset
31 %
Dave Love <fx@gnu.org>
parents:
diff changeset
32 % The final reference card has six columns, three on each side.
Dave Love <fx@gnu.org>
parents:
diff changeset
33 % This file can be used to produce it in any of three ways:
Dave Love <fx@gnu.org>
parents:
diff changeset
34 % 1 column per page
Dave Love <fx@gnu.org>
parents:
diff changeset
35 % produces six separate pages, each of which needs to be reduced to 80%.
Dave Love <fx@gnu.org>
parents:
diff changeset
36 % This gives the best resolution.
Dave Love <fx@gnu.org>
parents:
diff changeset
37 % 2 columns per page
Dave Love <fx@gnu.org>
parents:
diff changeset
38 % produces three already-reduced pages.
Dave Love <fx@gnu.org>
parents:
diff changeset
39 % You will still need to cut and paste.
Dave Love <fx@gnu.org>
parents:
diff changeset
40 % 3 columns per page
Dave Love <fx@gnu.org>
parents:
diff changeset
41 % produces two pages which must be printed sideways to make a
Dave Love <fx@gnu.org>
parents:
diff changeset
42 % ready-to-use 8.5 x 11 inch reference card.
Dave Love <fx@gnu.org>
parents:
diff changeset
43 % For this you need a dvi device driver that can print sideways.
Dave Love <fx@gnu.org>
parents:
diff changeset
44 % Which mode to use is controlled by setting \columnsperpage above.
Dave Love <fx@gnu.org>
parents:
diff changeset
45 %
Dave Love <fx@gnu.org>
parents:
diff changeset
46 % Author of Viper:
Dave Love <fx@gnu.org>
parents:
diff changeset
47 % Michael Kifer
Dave Love <fx@gnu.org>
parents:
diff changeset
48 % email: kifer@cs.sunysb.edu
Dave Love <fx@gnu.org>
parents:
diff changeset
49 %
Dave Love <fx@gnu.org>
parents:
diff changeset
50 % Author of VIP 4.3:
Dave Love <fx@gnu.org>
parents:
diff changeset
51 % Aamod Sane
Dave Love <fx@gnu.org>
parents:
diff changeset
52 % email: sane@cs.uiuc.edu
Dave Love <fx@gnu.org>
parents:
diff changeset
53 %
Dave Love <fx@gnu.org>
parents:
diff changeset
54 % Author of VIP 3.5:
Dave Love <fx@gnu.org>
parents:
diff changeset
55 % Masahiko Sato
Dave Love <fx@gnu.org>
parents:
diff changeset
56 % email: ms@sail.stanford.edu
Dave Love <fx@gnu.org>
parents:
diff changeset
57 %
Dave Love <fx@gnu.org>
parents:
diff changeset
58 % The original TeX code for formatting the reference card was written by:
Dave Love <fx@gnu.org>
parents:
diff changeset
59 % Stephen Gildea
Dave Love <fx@gnu.org>
parents:
diff changeset
60 % UUCP: mit-erl!gildea
39401
8aa4e0170a3d Update Stephen Gildea's mail address?
Eli Zaretskii <eliz@gnu.org>
parents: 25853
diff changeset
61 % email: gildea@stop.mail-abuse.org
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
62
Dave Love <fx@gnu.org>
parents:
diff changeset
63
Dave Love <fx@gnu.org>
parents:
diff changeset
64 \def\versionnumber{3.0}
65088
f05a048483cc Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64083
diff changeset
65 \def\year{2005}
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
66 \def\version{August \year\ v\versionnumber}
Dave Love <fx@gnu.org>
parents:
diff changeset
67
Dave Love <fx@gnu.org>
parents:
diff changeset
68 \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
Dave Love <fx@gnu.org>
parents:
diff changeset
69 \centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
70 Permissions on back. v\versionnumber}}
Dave Love <fx@gnu.org>
parents:
diff changeset
71
Dave Love <fx@gnu.org>
parents:
diff changeset
72 \def\copyrightnotice{
Dave Love <fx@gnu.org>
parents:
diff changeset
73 %\vskip 1ex plus 2 fill\begingroup\small
Dave Love <fx@gnu.org>
parents:
diff changeset
74 \vskip 1ex \begingroup\small
Dave Love <fx@gnu.org>
parents:
diff changeset
75 \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
Dave Love <fx@gnu.org>
parents:
diff changeset
76 \centerline{by Michael Kifer, Viper \version}
Dave Love <fx@gnu.org>
parents:
diff changeset
77 \centerline{by Aamod Sane, VIP version 4.3}
Dave Love <fx@gnu.org>
parents:
diff changeset
78 \centerline{by Masahiko Sato, VIP version 3.5}
Dave Love <fx@gnu.org>
parents:
diff changeset
79
Dave Love <fx@gnu.org>
parents:
diff changeset
80 Permission is granted to make and distribute copies of
Dave Love <fx@gnu.org>
parents:
diff changeset
81 this card provided the copyright notice and this permission notice
Dave Love <fx@gnu.org>
parents:
diff changeset
82 are preserved on all copies.
Dave Love <fx@gnu.org>
parents:
diff changeset
83
Dave Love <fx@gnu.org>
parents:
diff changeset
84 For copies of the GNU Emacs manual, write to the Free Software
64083
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
85 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
86
Dave Love <fx@gnu.org>
parents:
diff changeset
87 \endgroup}
Dave Love <fx@gnu.org>
parents:
diff changeset
88
Dave Love <fx@gnu.org>
parents:
diff changeset
89 % make \bye not \outer so that the \def\bye in the \else clause below
Dave Love <fx@gnu.org>
parents:
diff changeset
90 % can be scanned without complaint.
Dave Love <fx@gnu.org>
parents:
diff changeset
91 \def\bye{\par\vfill\supereject\end}
Dave Love <fx@gnu.org>
parents:
diff changeset
92
Dave Love <fx@gnu.org>
parents:
diff changeset
93 \newdimen\intercolumnskip
Dave Love <fx@gnu.org>
parents:
diff changeset
94 \newbox\columna
Dave Love <fx@gnu.org>
parents:
diff changeset
95 \newbox\columnb
Dave Love <fx@gnu.org>
parents:
diff changeset
96
Dave Love <fx@gnu.org>
parents:
diff changeset
97 \def\ncolumns{\the\columnsperpage}
Dave Love <fx@gnu.org>
parents:
diff changeset
98
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43258
diff changeset
99 \message{[\ncolumns\space
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
100 column\if 1\ncolumns\else s\fi\space per page]}
Dave Love <fx@gnu.org>
parents:
diff changeset
101
Dave Love <fx@gnu.org>
parents:
diff changeset
102 \def\scaledmag#1{ scaled \magstep #1}
Dave Love <fx@gnu.org>
parents:
diff changeset
103
Dave Love <fx@gnu.org>
parents:
diff changeset
104 % This multi-way format was designed by Stephen Gildea
Dave Love <fx@gnu.org>
parents:
diff changeset
105 % October 1986.
Dave Love <fx@gnu.org>
parents:
diff changeset
106 % Slightly modified by Masahiko Sato, September 1987.
Dave Love <fx@gnu.org>
parents:
diff changeset
107 \if 1\ncolumns
Dave Love <fx@gnu.org>
parents:
diff changeset
108 \hsize 4in
Dave Love <fx@gnu.org>
parents:
diff changeset
109 \vsize 10in
Dave Love <fx@gnu.org>
parents:
diff changeset
110 %\voffset -.7in
Dave Love <fx@gnu.org>
parents:
diff changeset
111 \voffset -.57in
Dave Love <fx@gnu.org>
parents:
diff changeset
112 \font\titlefont=\fontname\tenbf \scaledmag3
Dave Love <fx@gnu.org>
parents:
diff changeset
113 \font\headingfont=\fontname\tenbf \scaledmag2
Dave Love <fx@gnu.org>
parents:
diff changeset
114 \font\miniheadingfont=\fontname\tenbf \scaledmag1 % masahiko
Dave Love <fx@gnu.org>
parents:
diff changeset
115 \font\smallfont=\fontname\sevenrm
Dave Love <fx@gnu.org>
parents:
diff changeset
116 \font\smallsy=\fontname\sevensy
Dave Love <fx@gnu.org>
parents:
diff changeset
117
Dave Love <fx@gnu.org>
parents:
diff changeset
118 \footline{\hss\folio}
Dave Love <fx@gnu.org>
parents:
diff changeset
119 \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
Dave Love <fx@gnu.org>
parents:
diff changeset
120 \else
Dave Love <fx@gnu.org>
parents:
diff changeset
121 %\hsize 3.2in
Dave Love <fx@gnu.org>
parents:
diff changeset
122 %\vsize 7.95in
Dave Love <fx@gnu.org>
parents:
diff changeset
123 \hsize 3.41in % masahiko
Dave Love <fx@gnu.org>
parents:
diff changeset
124 \vsize 8in % masahiko
Dave Love <fx@gnu.org>
parents:
diff changeset
125 \hoffset -.75in
Dave Love <fx@gnu.org>
parents:
diff changeset
126 \voffset -.745in
Dave Love <fx@gnu.org>
parents:
diff changeset
127 \font\titlefont=cmbx10 \scaledmag2
Dave Love <fx@gnu.org>
parents:
diff changeset
128 \font\headingfont=cmbx10 \scaledmag1
Dave Love <fx@gnu.org>
parents:
diff changeset
129 \font\miniheadingfont=cmbx10 % masahiko
Dave Love <fx@gnu.org>
parents:
diff changeset
130 \font\smallfont=cmr6
Dave Love <fx@gnu.org>
parents:
diff changeset
131 \font\smallsy=cmsy6
Dave Love <fx@gnu.org>
parents:
diff changeset
132 \font\eightrm=cmr8
Dave Love <fx@gnu.org>
parents:
diff changeset
133 \font\eightbf=cmbx8
Dave Love <fx@gnu.org>
parents:
diff changeset
134 \font\eightit=cmti8
Dave Love <fx@gnu.org>
parents:
diff changeset
135 \font\eightsl=cmsl8
Dave Love <fx@gnu.org>
parents:
diff changeset
136 \font\eighttt=cmtt8
Dave Love <fx@gnu.org>
parents:
diff changeset
137 \font\eightsy=cmsy8
Dave Love <fx@gnu.org>
parents:
diff changeset
138 \textfont0=\eightrm
Dave Love <fx@gnu.org>
parents:
diff changeset
139 \textfont2=\eightsy
Dave Love <fx@gnu.org>
parents:
diff changeset
140 \def\rm{\eightrm}
Dave Love <fx@gnu.org>
parents:
diff changeset
141 \def\bf{\eightbf}
Dave Love <fx@gnu.org>
parents:
diff changeset
142 \def\it{\eightit}
Dave Love <fx@gnu.org>
parents:
diff changeset
143 \def\sl{\eightsl} % masahiko
Dave Love <fx@gnu.org>
parents:
diff changeset
144 \def\tt{\eighttt}
Dave Love <fx@gnu.org>
parents:
diff changeset
145 \normalbaselineskip=.8\normalbaselineskip
Dave Love <fx@gnu.org>
parents:
diff changeset
146 \normallineskip=.8\normallineskip
Dave Love <fx@gnu.org>
parents:
diff changeset
147 \normallineskiplimit=.8\normallineskiplimit
Dave Love <fx@gnu.org>
parents:
diff changeset
148 \normalbaselines\rm %make definitions take effect
Dave Love <fx@gnu.org>
parents:
diff changeset
149
Dave Love <fx@gnu.org>
parents:
diff changeset
150 \if 2\ncolumns
Dave Love <fx@gnu.org>
parents:
diff changeset
151 \let\maxcolumn=b
Dave Love <fx@gnu.org>
parents:
diff changeset
152 \footline{\hss\rm\folio\hss}
Dave Love <fx@gnu.org>
parents:
diff changeset
153 \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
Dave Love <fx@gnu.org>
parents:
diff changeset
154 \else \if 3\ncolumns
Dave Love <fx@gnu.org>
parents:
diff changeset
155 \let\maxcolumn=c
Dave Love <fx@gnu.org>
parents:
diff changeset
156 \nopagenumbers
Dave Love <fx@gnu.org>
parents:
diff changeset
157 \else
Dave Love <fx@gnu.org>
parents:
diff changeset
158 \errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
Dave Love <fx@gnu.org>
parents:
diff changeset
159 \errmessage{Illegal number of columns per page}
Dave Love <fx@gnu.org>
parents:
diff changeset
160 \fi\fi
Dave Love <fx@gnu.org>
parents:
diff changeset
161
Dave Love <fx@gnu.org>
parents:
diff changeset
162 %\intercolumnskip=.46in
Dave Love <fx@gnu.org>
parents:
diff changeset
163 \intercolumnskip=.19in % masahiko .19x4 + 3.41x3 = 10.99
Dave Love <fx@gnu.org>
parents:
diff changeset
164 \def\abc{a}
Dave Love <fx@gnu.org>
parents:
diff changeset
165 \output={%
Dave Love <fx@gnu.org>
parents:
diff changeset
166 % This next line is useful when designing the layout.
Dave Love <fx@gnu.org>
parents:
diff changeset
167 %\immediate\write16{Column \folio\abc\space starts with \firstmark}
Dave Love <fx@gnu.org>
parents:
diff changeset
168 \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
Dave Love <fx@gnu.org>
parents:
diff changeset
169 \else\if a\abc
Dave Love <fx@gnu.org>
parents:
diff changeset
170 \global\setbox\columna\columnbox \global\def\abc{b}
Dave Love <fx@gnu.org>
parents:
diff changeset
171 %% in case we never use \columnb (two-column mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
172 \global\setbox\columnb\hbox to -\intercolumnskip{}
Dave Love <fx@gnu.org>
parents:
diff changeset
173 \else
Dave Love <fx@gnu.org>
parents:
diff changeset
174 \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
Dave Love <fx@gnu.org>
parents:
diff changeset
175 \def\multicolumnformat{\shipout\vbox{\makeheadline
Dave Love <fx@gnu.org>
parents:
diff changeset
176 \hbox{\box\columna\hskip\intercolumnskip
Dave Love <fx@gnu.org>
parents:
diff changeset
177 \box\columnb\hskip\intercolumnskip\columnbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
178 \makefootline}\advancepageno}
Dave Love <fx@gnu.org>
parents:
diff changeset
179 \def\columnbox{\leftline{\pagebody}}
Dave Love <fx@gnu.org>
parents:
diff changeset
180
Dave Love <fx@gnu.org>
parents:
diff changeset
181 \def\bye{\par\vfill\supereject
Dave Love <fx@gnu.org>
parents:
diff changeset
182 \if a\abc \else\null\vfill\eject\fi
Dave Love <fx@gnu.org>
parents:
diff changeset
183 \if a\abc \else\null\vfill\eject\fi
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43258
diff changeset
184 \end}
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
185 \fi
Dave Love <fx@gnu.org>
parents:
diff changeset
186
Dave Love <fx@gnu.org>
parents:
diff changeset
187 % we won't be using math mode much, so redefine some of the characters
Dave Love <fx@gnu.org>
parents:
diff changeset
188 % we might want to talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
189 \catcode`\^=12
Dave Love <fx@gnu.org>
parents:
diff changeset
190 \catcode`\_=12
Dave Love <fx@gnu.org>
parents:
diff changeset
191
Dave Love <fx@gnu.org>
parents:
diff changeset
192 \chardef\\=`\\
Dave Love <fx@gnu.org>
parents:
diff changeset
193 \chardef\{=`\{
Dave Love <fx@gnu.org>
parents:
diff changeset
194 \chardef\}=`\}
Dave Love <fx@gnu.org>
parents:
diff changeset
195
Dave Love <fx@gnu.org>
parents:
diff changeset
196 \hyphenation{mini-buf-fer}
Dave Love <fx@gnu.org>
parents:
diff changeset
197
Dave Love <fx@gnu.org>
parents:
diff changeset
198 \parindent 0pt
Dave Love <fx@gnu.org>
parents:
diff changeset
199 \parskip 1ex plus .5ex minus .5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
200
Dave Love <fx@gnu.org>
parents:
diff changeset
201 \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
Dave Love <fx@gnu.org>
parents:
diff changeset
202
Dave Love <fx@gnu.org>
parents:
diff changeset
203 \outer\def\newcolumn{\vfill\eject}
Dave Love <fx@gnu.org>
parents:
diff changeset
204
Dave Love <fx@gnu.org>
parents:
diff changeset
205 \outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
Dave Love <fx@gnu.org>
parents:
diff changeset
206
Dave Love <fx@gnu.org>
parents:
diff changeset
207 \outer\def\section#1{\par\filbreak
Dave Love <fx@gnu.org>
parents:
diff changeset
208 \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
Dave Love <fx@gnu.org>
parents:
diff changeset
209 \vskip 2ex plus 1ex minus 1.5ex}
Dave Love <fx@gnu.org>
parents:
diff changeset
210
Dave Love <fx@gnu.org>
parents:
diff changeset
211 % masahiko
Dave Love <fx@gnu.org>
parents:
diff changeset
212 \outer\def\subsection#1{\par\filbreak
Dave Love <fx@gnu.org>
parents:
diff changeset
213 \vskip 2ex plus 2ex minus 2ex {\miniheadingfont #1}\mark{#1}%
Dave Love <fx@gnu.org>
parents:
diff changeset
214 \vskip 1ex plus 1ex minus 1.5ex}
Dave Love <fx@gnu.org>
parents:
diff changeset
215
Dave Love <fx@gnu.org>
parents:
diff changeset
216 \newdimen\keyindent
Dave Love <fx@gnu.org>
parents:
diff changeset
217
Dave Love <fx@gnu.org>
parents:
diff changeset
218 \def\beginindentedkeys{\keyindent=1em}
Dave Love <fx@gnu.org>
parents:
diff changeset
219 \def\endindentedkeys{\keyindent=0em}
Dave Love <fx@gnu.org>
parents:
diff changeset
220 \endindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
221
Dave Love <fx@gnu.org>
parents:
diff changeset
222 \def\paralign{\vskip\parskip\halign}
Dave Love <fx@gnu.org>
parents:
diff changeset
223
Dave Love <fx@gnu.org>
parents:
diff changeset
224 \def\<#1>{$\langle${\rm #1}$\rangle$}
Dave Love <fx@gnu.org>
parents:
diff changeset
225
Dave Love <fx@gnu.org>
parents:
diff changeset
226 \def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
Dave Love <fx@gnu.org>
parents:
diff changeset
227
Dave Love <fx@gnu.org>
parents:
diff changeset
228 \def\beginexample{\par\leavevmode\begingroup
Dave Love <fx@gnu.org>
parents:
diff changeset
229 \obeylines\obeyspaces\parskip0pt\tt}
Dave Love <fx@gnu.org>
parents:
diff changeset
230 {\obeyspaces\global\let =\ }
Dave Love <fx@gnu.org>
parents:
diff changeset
231 \def\endexample{\endgroup}
Dave Love <fx@gnu.org>
parents:
diff changeset
232
Dave Love <fx@gnu.org>
parents:
diff changeset
233 \def\key#1#2{\leavevmode\hbox to \hsize{\vtop
Dave Love <fx@gnu.org>
parents:
diff changeset
234 {\hsize=.75\hsize\rightskip=1em
Dave Love <fx@gnu.org>
parents:
diff changeset
235 \hskip\keyindent\relax#1}\kbd{#2}\hfil}}
Dave Love <fx@gnu.org>
parents:
diff changeset
236
Dave Love <fx@gnu.org>
parents:
diff changeset
237 \newbox\metaxbox
Dave Love <fx@gnu.org>
parents:
diff changeset
238 \setbox\metaxbox\hbox{\kbd{M-x }}
Dave Love <fx@gnu.org>
parents:
diff changeset
239 \newdimen\metaxwidth
Dave Love <fx@gnu.org>
parents:
diff changeset
240 \metaxwidth=\wd\metaxbox
Dave Love <fx@gnu.org>
parents:
diff changeset
241
Dave Love <fx@gnu.org>
parents:
diff changeset
242 \def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
Dave Love <fx@gnu.org>
parents:
diff changeset
243 {\hskip\keyindent\relax#1\hfil}%
Dave Love <fx@gnu.org>
parents:
diff changeset
244 \hskip -\metaxwidth minus 1fil
Dave Love <fx@gnu.org>
parents:
diff changeset
245 \kbd{#2}\hfil}}
Dave Love <fx@gnu.org>
parents:
diff changeset
246
Dave Love <fx@gnu.org>
parents:
diff changeset
247 \def\fivecol#1#2#3#4#5{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad
Dave Love <fx@gnu.org>
parents:
diff changeset
248 &\kbd{#3}\quad&\kbd{#4}\quad&\kbd{#5}\cr}
Dave Love <fx@gnu.org>
parents:
diff changeset
249
Dave Love <fx@gnu.org>
parents:
diff changeset
250 \def\fourcol#1#2#3#4{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad
Dave Love <fx@gnu.org>
parents:
diff changeset
251 &\kbd{#3}\quad&\kbd{#4}\quad\cr}
Dave Love <fx@gnu.org>
parents:
diff changeset
252
Dave Love <fx@gnu.org>
parents:
diff changeset
253 \def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad
Dave Love <fx@gnu.org>
parents:
diff changeset
254 &\kbd{#3}\quad\cr}
Dave Love <fx@gnu.org>
parents:
diff changeset
255
Dave Love <fx@gnu.org>
parents:
diff changeset
256 \def\twocol#1#2{\hskip\keyindent\relax\kbd{#1}\hfil&\kbd{#2}\quad\cr}
Dave Love <fx@gnu.org>
parents:
diff changeset
257
Dave Love <fx@gnu.org>
parents:
diff changeset
258 \def\twocolkey#1#2#3#4{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad&\relax#3\hfil&\kbd{#4}\quad\cr}
Dave Love <fx@gnu.org>
parents:
diff changeset
259
Dave Love <fx@gnu.org>
parents:
diff changeset
260 %**end of header
Dave Love <fx@gnu.org>
parents:
diff changeset
261
Dave Love <fx@gnu.org>
parents:
diff changeset
262 \beginindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
263
Dave Love <fx@gnu.org>
parents:
diff changeset
264 \title{ViperCard: Viper Reference Pal}
Dave Love <fx@gnu.org>
parents:
diff changeset
265
43258
f3408a98d0f3 Update Emacs version 20.x -> 21.x.
Eli Zaretskii <eliz@gnu.org>
parents: 39401
diff changeset
266 \centerline{(Version 3.0 (Polyglot) for Emacs 21 and XEmacs 20)}
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
267
Dave Love <fx@gnu.org>
parents:
diff changeset
268 %\copyrightnotice
Dave Love <fx@gnu.org>
parents:
diff changeset
269
Dave Love <fx@gnu.org>
parents:
diff changeset
270 \section{Loading Viper}
Dave Love <fx@gnu.org>
parents:
diff changeset
271
Dave Love <fx@gnu.org>
parents:
diff changeset
272 Just type \kbd{M-x viper-mode} followed by \kbd{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
273
Dave Love <fx@gnu.org>
parents:
diff changeset
274 OR put
Dave Love <fx@gnu.org>
parents:
diff changeset
275
Dave Love <fx@gnu.org>
parents:
diff changeset
276 (setq viper-mode t)
Dave Love <fx@gnu.org>
parents:
diff changeset
277 (require 'viper)
Dave Love <fx@gnu.org>
parents:
diff changeset
278
Dave Love <fx@gnu.org>
parents:
diff changeset
279 in .emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
280
Dave Love <fx@gnu.org>
parents:
diff changeset
281 \section{Viper States}
Dave Love <fx@gnu.org>
parents:
diff changeset
282
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43258
diff changeset
283 Viper has four states: {\it emacs state}, {\it vi state}, {\it insert state},
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
284 {\it replace state}.
Dave Love <fx@gnu.org>
parents:
diff changeset
285 Mode line tells you which state you are in.
Dave Love <fx@gnu.org>
parents:
diff changeset
286 In emacs state you can do all the normal GNU Emacs editing.
Dave Love <fx@gnu.org>
parents:
diff changeset
287 This card explains only vi state and insert state (replace state is similar
Dave Love <fx@gnu.org>
parents:
diff changeset
288 to insert state).
Dave Love <fx@gnu.org>
parents:
diff changeset
289 {\bf GNU Emacs Reference Card} explains emacs state.
Dave Love <fx@gnu.org>
parents:
diff changeset
290 You can switch states as follows.
Dave Love <fx@gnu.org>
parents:
diff changeset
291
Dave Love <fx@gnu.org>
parents:
diff changeset
292 \key{from emacs state to vi state}{C-z}
Dave Love <fx@gnu.org>
parents:
diff changeset
293 \key{from vi state to emacs state}{C-z}
Dave Love <fx@gnu.org>
parents:
diff changeset
294 \key{from vi state to emacs state for 1 command}{$\backslash$}
Dave Love <fx@gnu.org>
parents:
diff changeset
295 \metax{from vi state to insert state}{i, I, a, A, o, O}
Dave Love <fx@gnu.org>
parents:
diff changeset
296 \metax{from vi state to replace state}{c, C, R}
Dave Love <fx@gnu.org>
parents:
diff changeset
297 \key{from insert or replace state to vi state}{ESC}
Dave Love <fx@gnu.org>
parents:
diff changeset
298 \key{from insert state to vi state for 1 command}{C-z}
Dave Love <fx@gnu.org>
parents:
diff changeset
299
Dave Love <fx@gnu.org>
parents:
diff changeset
300
Dave Love <fx@gnu.org>
parents:
diff changeset
301 \section{Insert Mode}
Dave Love <fx@gnu.org>
parents:
diff changeset
302 You can do editing in insert state.
Dave Love <fx@gnu.org>
parents:
diff changeset
303
Dave Love <fx@gnu.org>
parents:
diff changeset
304 \metax{go back to vi state}{ESC}
Dave Love <fx@gnu.org>
parents:
diff changeset
305 \metax{delete previous character}{C-h, DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
306 \key{delete previous word}{C-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
307 \key{delete line word}{C-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
308 \key{indent shiftwidth forward}{C-t}
Dave Love <fx@gnu.org>
parents:
diff changeset
309 \key{indent shiftwidth backward}{C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
310 \key{delete line word}{C-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
311 \key{quote following character}{C-v}
Dave Love <fx@gnu.org>
parents:
diff changeset
312 \key{emulate Meta key in emacs state}{C-$\backslash$}
Dave Love <fx@gnu.org>
parents:
diff changeset
313 \key{escape to Vi state for one command}{C-z}
Dave Love <fx@gnu.org>
parents:
diff changeset
314
Dave Love <fx@gnu.org>
parents:
diff changeset
315 \vskip 2mm
Dave Love <fx@gnu.org>
parents:
diff changeset
316
Dave Love <fx@gnu.org>
parents:
diff changeset
317 {\bf The rest of this card explains commands in {\bf vi state}.}
Dave Love <fx@gnu.org>
parents:
diff changeset
318
Dave Love <fx@gnu.org>
parents:
diff changeset
319 \section{Getting Information on Viper}
Dave Love <fx@gnu.org>
parents:
diff changeset
320
Dave Love <fx@gnu.org>
parents:
diff changeset
321 Execute info command by typing \kbd{M-x info} and select menu item
Dave Love <fx@gnu.org>
parents:
diff changeset
322 \kbd{viper}. Also:
Dave Love <fx@gnu.org>
parents:
diff changeset
323
Dave Love <fx@gnu.org>
parents:
diff changeset
324 \key{describe function attached to the key {\it x}}{$\backslash$ C-h k {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
325
Dave Love <fx@gnu.org>
parents:
diff changeset
326 \section{Leaving Emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
327
Dave Love <fx@gnu.org>
parents:
diff changeset
328 \metax{suspend Emacs}{:st {\rm or} :su}
Dave Love <fx@gnu.org>
parents:
diff changeset
329 \metax{exit Emacs permanently}{C-xC-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
330 \metax{exit current file}{:wq {\rm or} :q}
Dave Love <fx@gnu.org>
parents:
diff changeset
331
Dave Love <fx@gnu.org>
parents:
diff changeset
332 \shortcopyrightnotice
Dave Love <fx@gnu.org>
parents:
diff changeset
333
Dave Love <fx@gnu.org>
parents:
diff changeset
334 \section{Error Recovery}
Dave Love <fx@gnu.org>
parents:
diff changeset
335
Dave Love <fx@gnu.org>
parents:
diff changeset
336 \metax{abort command}{C-c (user level = 1)}
Dave Love <fx@gnu.org>
parents:
diff changeset
337 \metax{abort command}{C-g (user level > 1)}
Dave Love <fx@gnu.org>
parents:
diff changeset
338 \key{redraw messed up screen}{C-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
339 \metax{{\bf recover} after system crash}{:rec file}
Dave Love <fx@gnu.org>
parents:
diff changeset
340 \metax{restore a buffer }{:e!\ {\rm or} M-x revert-buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
341
Dave Love <fx@gnu.org>
parents:
diff changeset
342
Dave Love <fx@gnu.org>
parents:
diff changeset
343 \section{Counts}
Dave Love <fx@gnu.org>
parents:
diff changeset
344
Dave Love <fx@gnu.org>
parents:
diff changeset
345 Most commands in vi state accept a {\it count} which can be supplied as a
Dave Love <fx@gnu.org>
parents:
diff changeset
346 prefix to the commands. In most cases, if a count is given, the
Dave Love <fx@gnu.org>
parents:
diff changeset
347 command is executed that many times. E.g., \kbd{5 d d} deletes 5
Dave Love <fx@gnu.org>
parents:
diff changeset
348 lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
349
Dave Love <fx@gnu.org>
parents:
diff changeset
350 \section{Registers}
Dave Love <fx@gnu.org>
parents:
diff changeset
351
Dave Love <fx@gnu.org>
parents:
diff changeset
352 There are 26 registers (\kbd{a} to \kbd{z}) that can store texts
Dave Love <fx@gnu.org>
parents:
diff changeset
353 and marks.
Dave Love <fx@gnu.org>
parents:
diff changeset
354 You can append a text at the end of a register (say \kbd{x}) by
Dave Love <fx@gnu.org>
parents:
diff changeset
355 specifying the register name in capital letter (say \kbd{X}).
Dave Love <fx@gnu.org>
parents:
diff changeset
356 There are also 9 read only registers (\kbd{1} to \kbd{9}) that store
Dave Love <fx@gnu.org>
parents:
diff changeset
357 up to 9 previous changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
358 We will use {\it x\/} to denote a register.
Dave Love <fx@gnu.org>
parents:
diff changeset
359 \section{Entering Insert Mode}
Dave Love <fx@gnu.org>
parents:
diff changeset
360
Dave Love <fx@gnu.org>
parents:
diff changeset
361 \key{{\bf insert} at point}{i}
Dave Love <fx@gnu.org>
parents:
diff changeset
362 \key{{\bf append} after cursor}{a}
Dave Love <fx@gnu.org>
parents:
diff changeset
363 \key{{\bf insert} before first non-white}{I}
Dave Love <fx@gnu.org>
parents:
diff changeset
364 \key{{\bf append} at end of line}{A}
Dave Love <fx@gnu.org>
parents:
diff changeset
365 \key{{\bf open} line below}{o}
Dave Love <fx@gnu.org>
parents:
diff changeset
366 \key{{\bf open} line above}{O}
Dave Love <fx@gnu.org>
parents:
diff changeset
367
Dave Love <fx@gnu.org>
parents:
diff changeset
368 \section{Buffers and Windows}
Dave Love <fx@gnu.org>
parents:
diff changeset
369
Dave Love <fx@gnu.org>
parents:
diff changeset
370 \key{move cursor to {\bf next} window}{C-x o}
Dave Love <fx@gnu.org>
parents:
diff changeset
371 \key{delete current window}{C-x 0}
Dave Love <fx@gnu.org>
parents:
diff changeset
372 \key{delete other windows}{C-x 1}
Dave Love <fx@gnu.org>
parents:
diff changeset
373 \key{split current window into two windows}{C-x 2}
Dave Love <fx@gnu.org>
parents:
diff changeset
374 \key{{\bf switch} to a buffer in the current window}{C-x {\sl buffer}}
Dave Love <fx@gnu.org>
parents:
diff changeset
375 \metax{{\bf switch} to a buffer in another window}{:n, :b, {\rm or} C-x 4 {\sl buf}}
Dave Love <fx@gnu.org>
parents:
diff changeset
376 \key{{\bf kill} a buffer}{:q! {\rm or} C-x k}
Dave Love <fx@gnu.org>
parents:
diff changeset
377 \key{list existing {\bf buffers}}{:args {\rm or} C-x b}
Dave Love <fx@gnu.org>
parents:
diff changeset
378
Dave Love <fx@gnu.org>
parents:
diff changeset
379 \section{Files}
Dave Love <fx@gnu.org>
parents:
diff changeset
380
Dave Love <fx@gnu.org>
parents:
diff changeset
381 \metax{{\bf visit} file in the current window}{v {\sl file} {\rm or} :e {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
382 \key{{\bf visit} file in another window}{V {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
383 \key{{\bf visit} file in another frame}{C-v {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
384 \key{{\bf save} buffer to the associated file}{:w {\rm or} C-xC-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
385 \metax{{\bf write} buffer to a specified file}{:w {\sl file} {\rm or} C-xC-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
386 \metax{{\bf insert} a specified file at point}{:r {\sl file} {\rm or} C-xi}
Dave Love <fx@gnu.org>
parents:
diff changeset
387 \key{{\bf get} information on the current {\bf file}}{C-c g {\rm or} :f}
Dave Love <fx@gnu.org>
parents:
diff changeset
388 \key{run the {\bf directory} editor}{:e RET {\rm or} C-xd}
Dave Love <fx@gnu.org>
parents:
diff changeset
389
Dave Love <fx@gnu.org>
parents:
diff changeset
390 %\shortcopyrightnotice
Dave Love <fx@gnu.org>
parents:
diff changeset
391
Dave Love <fx@gnu.org>
parents:
diff changeset
392 \section{Viewing the Buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
393
Dave Love <fx@gnu.org>
parents:
diff changeset
394 \key{scroll to next screen}{C-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
395 \key{scroll to previous screen}{C-b}
Dave Love <fx@gnu.org>
parents:
diff changeset
396 \key{scroll {\bf down} half screen}{C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
397 \key{scroll {\bf up} half screen}{C-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
398 \key{scroll down one line}{C-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
399 \key{scroll up one line}{C-y}
Dave Love <fx@gnu.org>
parents:
diff changeset
400
Dave Love <fx@gnu.org>
parents:
diff changeset
401 \key{put current line on the {\bf home} line}{z H {\rm or} z RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
402 \key{put current line on the {\bf middle} line}{z M {\rm or} z .}
Dave Love <fx@gnu.org>
parents:
diff changeset
403 \key{put current line on the {\bf last} line}{z L {\rm or} z -}
Dave Love <fx@gnu.org>
parents:
diff changeset
404
Dave Love <fx@gnu.org>
parents:
diff changeset
405 \section{Marking and Returning}
Dave Love <fx@gnu.org>
parents:
diff changeset
406
Dave Love <fx@gnu.org>
parents:
diff changeset
407 \key{{\bf mark} point in register {\it x}}{m {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
408 \key{set mark at buffer beginning}{m <}
Dave Love <fx@gnu.org>
parents:
diff changeset
409 \key{set mark at buffer end}{m >}
Dave Love <fx@gnu.org>
parents:
diff changeset
410 \key{set mark at point}{m .}
Dave Love <fx@gnu.org>
parents:
diff changeset
411 \key{jump to mark}{m ,}
Dave Love <fx@gnu.org>
parents:
diff changeset
412 \key{exchange point and mark}{` `}
Dave Love <fx@gnu.org>
parents:
diff changeset
413 \key{... and skip to first non-white on line}{' '}
Dave Love <fx@gnu.org>
parents:
diff changeset
414 \key{go to mark {\it x}}{` {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
415 \key{... and skip to first non-white on line}{' {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
416 \key{view contents of marker {\it x}}{[ {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
417 \key{view contents of register {\it x}}{] {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
418
Dave Love <fx@gnu.org>
parents:
diff changeset
419 \section{Macros}
Dave Love <fx@gnu.org>
parents:
diff changeset
420
Dave Love <fx@gnu.org>
parents:
diff changeset
421 Emacs style macros:
Dave Love <fx@gnu.org>
parents:
diff changeset
422
Dave Love <fx@gnu.org>
parents:
diff changeset
423 \key{start remembering keyboard macro}{C-x (}
Dave Love <fx@gnu.org>
parents:
diff changeset
424 \key{finish remembering keyboard macro}{C-x )}
Dave Love <fx@gnu.org>
parents:
diff changeset
425 \key{call last keyboard macro}{*}
Dave Love <fx@gnu.org>
parents:
diff changeset
426
Dave Love <fx@gnu.org>
parents:
diff changeset
427 \key{start remembering keyboard macro}{@ \#}
Dave Love <fx@gnu.org>
parents:
diff changeset
428 \key{finish macro and put into register {\it x}}{@ {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
429 \key{execute macro stored in register {\it x}}{@ {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
430 \key{repeat last @{\it x} command}{@ @}
Dave Love <fx@gnu.org>
parents:
diff changeset
431
Dave Love <fx@gnu.org>
parents:
diff changeset
432 \key{Pull last macro into register {\it x}}{@ ! {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
433
Dave Love <fx@gnu.org>
parents:
diff changeset
434 Vi-style macros (keys to be hit in quick succession):
Dave Love <fx@gnu.org>
parents:
diff changeset
435
Dave Love <fx@gnu.org>
parents:
diff changeset
436 \key{define Vi-style macro for Vi state}{:map}
Dave Love <fx@gnu.org>
parents:
diff changeset
437 \key{define Vi-style macro for Insert state}{:map!}
Dave Love <fx@gnu.org>
parents:
diff changeset
438
Dave Love <fx@gnu.org>
parents:
diff changeset
439 \key{toggle case-sensitive search}{//}
Dave Love <fx@gnu.org>
parents:
diff changeset
440 \key{toggle regular expression search}{///}
Dave Love <fx@gnu.org>
parents:
diff changeset
441 \key{toggle `\%' to ignore parentheses inside comments}{\%\%\%}
Dave Love <fx@gnu.org>
parents:
diff changeset
442
Dave Love <fx@gnu.org>
parents:
diff changeset
443
Dave Love <fx@gnu.org>
parents:
diff changeset
444 \section{Motion Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
445
Dave Love <fx@gnu.org>
parents:
diff changeset
446 \key{go backward one character}{h {\rm or} C-h}
Dave Love <fx@gnu.org>
parents:
diff changeset
447 \key{go forward one character}{l}
Dave Love <fx@gnu.org>
parents:
diff changeset
448 \metax{next line keeping the column}{j {\rm or} LF {\rm or} C-n}
Dave Love <fx@gnu.org>
parents:
diff changeset
449 \key{previous line keeping the column}{k}
Dave Love <fx@gnu.org>
parents:
diff changeset
450 \metax{next line at first non-white}{+ {\rm or} RET {\rm or} C-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
451 \key{previous line at first non-white}{-}
Dave Love <fx@gnu.org>
parents:
diff changeset
452
Dave Love <fx@gnu.org>
parents:
diff changeset
453 \key{beginning of line}{0}
Dave Love <fx@gnu.org>
parents:
diff changeset
454 \key{first non-white on line}{^}
Dave Love <fx@gnu.org>
parents:
diff changeset
455 \key{end of line}{\$}
Dave Love <fx@gnu.org>
parents:
diff changeset
456 \key{go to {\it n}-th column on line}{{\it n} |}
Dave Love <fx@gnu.org>
parents:
diff changeset
457
Dave Love <fx@gnu.org>
parents:
diff changeset
458 \key{go to {\it n}-th line}{{\it n} G}
Dave Love <fx@gnu.org>
parents:
diff changeset
459 \key{go to last line}{G}
Dave Love <fx@gnu.org>
parents:
diff changeset
460 \key{find matching parenthesis for \kbd{()}, \kbd{\{\}} and \kbd{[]}}{\%}
Dave Love <fx@gnu.org>
parents:
diff changeset
461
Dave Love <fx@gnu.org>
parents:
diff changeset
462 \key{go to {\bf home} window line}{H}
Dave Love <fx@gnu.org>
parents:
diff changeset
463 \key{go to {\bf middle} window line}{M}
Dave Love <fx@gnu.org>
parents:
diff changeset
464 \key{go to {\bf last} window line}{L}
Dave Love <fx@gnu.org>
parents:
diff changeset
465
Dave Love <fx@gnu.org>
parents:
diff changeset
466 \subsection{Words, Sentences, Paragraphs, Headings}
Dave Love <fx@gnu.org>
parents:
diff changeset
467
Dave Love <fx@gnu.org>
parents:
diff changeset
468 \key{forward {\bf word}}{w {\rm or} W}
Dave Love <fx@gnu.org>
parents:
diff changeset
469 \key{{\bf backward} word}{b {\rm or} B}
Dave Love <fx@gnu.org>
parents:
diff changeset
470 \key{{\bf end} of word}{e {\rm or} E}
Dave Love <fx@gnu.org>
parents:
diff changeset
471
Dave Love <fx@gnu.org>
parents:
diff changeset
472 In the case of capital letter commands, a word is delimited by a
Dave Love <fx@gnu.org>
parents:
diff changeset
473 non-white character.
Dave Love <fx@gnu.org>
parents:
diff changeset
474
Dave Love <fx@gnu.org>
parents:
diff changeset
475 \key{forward sentence}{)}
Dave Love <fx@gnu.org>
parents:
diff changeset
476 \key{backward sentence}{(}
Dave Love <fx@gnu.org>
parents:
diff changeset
477
Dave Love <fx@gnu.org>
parents:
diff changeset
478 \key{forward paragraph}{\}}
Dave Love <fx@gnu.org>
parents:
diff changeset
479 \key{backward paragraph}{\{}
Dave Love <fx@gnu.org>
parents:
diff changeset
480
Dave Love <fx@gnu.org>
parents:
diff changeset
481 \key{forward heading}{]]}
Dave Love <fx@gnu.org>
parents:
diff changeset
482 \key{backward heading}{[[}
Dave Love <fx@gnu.org>
parents:
diff changeset
483 \key{end of heading}{[]}
Dave Love <fx@gnu.org>
parents:
diff changeset
484
Dave Love <fx@gnu.org>
parents:
diff changeset
485 \subsection{Find Characters on the Line}
Dave Love <fx@gnu.org>
parents:
diff changeset
486
Dave Love <fx@gnu.org>
parents:
diff changeset
487 \key{{\bf find} {\it c} forward on line}{f {\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
488 \key{{\bf find} {\it c} backward on line}{F {\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
489 \key{up {\bf to} {\it c} forward on line}{t {\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
490 \key{up {\bf to} {\it c} backward on line}{T {\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
491 \key{repeat previous \kbd{f}, \kbd{F}, \kbd{t} or \kbd{T}}{;}
Dave Love <fx@gnu.org>
parents:
diff changeset
492 \key{... in the opposite direction}{,}
Dave Love <fx@gnu.org>
parents:
diff changeset
493
Dave Love <fx@gnu.org>
parents:
diff changeset
494 %\newcolumn
Dave Love <fx@gnu.org>
parents:
diff changeset
495 %\title{Viper Quick Reference Card}
Dave Love <fx@gnu.org>
parents:
diff changeset
496
Dave Love <fx@gnu.org>
parents:
diff changeset
497 \section{Searching and Replacing}
Dave Love <fx@gnu.org>
parents:
diff changeset
498
Dave Love <fx@gnu.org>
parents:
diff changeset
499 \key{search forward for {\sl pat}}{/ {\sl pat}}
Dave Love <fx@gnu.org>
parents:
diff changeset
500 \key{search backward with previous {\sl pat}}{?\ RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
501 \key{search forward with previous {\sl pat}}{/ RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
502 \key{search backward for {\sl pat}}{?\ {\sl pat}}
Dave Love <fx@gnu.org>
parents:
diff changeset
503 \key{repeat previous search}{n}
Dave Love <fx@gnu.org>
parents:
diff changeset
504 \key{... in the opposite direction}{N}
Dave Love <fx@gnu.org>
parents:
diff changeset
505
Dave Love <fx@gnu.org>
parents:
diff changeset
506 \key{{\bf query} replace}{Q}
Dave Love <fx@gnu.org>
parents:
diff changeset
507 \key{{\bf replace} a character by another character {\it c}}{r {\it c}}
Dave Love <fx@gnu.org>
parents:
diff changeset
508 \key{{\bf overwrite} {\it n} lines}{{\it n} R}
Dave Love <fx@gnu.org>
parents:
diff changeset
509
Dave Love <fx@gnu.org>
parents:
diff changeset
510 \metax{{\bf buffer} search (if enabled)}{g {\it move command}}
Dave Love <fx@gnu.org>
parents:
diff changeset
511
Dave Love <fx@gnu.org>
parents:
diff changeset
512 \section{Modifying Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
513
Dave Love <fx@gnu.org>
parents:
diff changeset
514 Most commands that operate on text regions accept the motion commands,
Dave Love <fx@gnu.org>
parents:
diff changeset
515 to describe regions. They also accept the Emacs region specifications
Dave Love <fx@gnu.org>
parents:
diff changeset
516 {\bf r} and {\bf R}. {\bf r} describes the region between {\it point}
Dave Love <fx@gnu.org>
parents:
diff changeset
517 and {\it mark}, and {\bf R} describes whole lines in that region.
Dave Love <fx@gnu.org>
parents:
diff changeset
518 Motion commands are classified into {\it point commands} and
Dave Love <fx@gnu.org>
parents:
diff changeset
519 {\it line commands}. In the case of line commands, whole lines will
Dave Love <fx@gnu.org>
parents:
diff changeset
520 be affected by the command.
Dave Love <fx@gnu.org>
parents:
diff changeset
521
Dave Love <fx@gnu.org>
parents:
diff changeset
522 The point commands are as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
523
Dave Love <fx@gnu.org>
parents:
diff changeset
524 \hskip 5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
525 \kbd{h l 0 ^ \$ w W b B e E ( ) / ?\ ` f F t T \% ; ,}
Dave Love <fx@gnu.org>
parents:
diff changeset
526
Dave Love <fx@gnu.org>
parents:
diff changeset
527 The line commands are as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
528
Dave Love <fx@gnu.org>
parents:
diff changeset
529 \hskip 5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
530 \kbd{j k + - H M L \{ \} G '}
Dave Love <fx@gnu.org>
parents:
diff changeset
531
Dave Love <fx@gnu.org>
parents:
diff changeset
532 These region specifiers will be referred to as {\it m} below.
Dave Love <fx@gnu.org>
parents:
diff changeset
533
Dave Love <fx@gnu.org>
parents:
diff changeset
534 \subsection{Delete/Yank/Change Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
535
Dave Love <fx@gnu.org>
parents:
diff changeset
536 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
537 \fourcol{}{{\bf delete}}{{\bf yank}}{{\bf change}}
Dave Love <fx@gnu.org>
parents:
diff changeset
538 \fourcol{region determined by {\it m}}{d {\it m}}{y {\it m}}{c {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
539 \fourcol{... into register {\it x}}{" {\it x\/} d {\it m}}{" {\it x\/} y {\it m}}{" {\it x\/} c {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
540 \fourcol{a line}{d d}{Y {\rm or} y y}{c c}
Dave Love <fx@gnu.org>
parents:
diff changeset
541 \fourcol{current {\bf region}}{d r}{y r}{c r}
Dave Love <fx@gnu.org>
parents:
diff changeset
542 \fourcol{expanded {\bf region}}{d R}{y R}{c R}
Dave Love <fx@gnu.org>
parents:
diff changeset
543 \fourcol{to end of line}{D}{y \$}{c \$}
Dave Love <fx@gnu.org>
parents:
diff changeset
544 \fourcol{a character after point}{x}{y l}{c l}
Dave Love <fx@gnu.org>
parents:
diff changeset
545 \fourcol{a character before point}{DEL}{y h}{c h}
Dave Love <fx@gnu.org>
parents:
diff changeset
546 }
Dave Love <fx@gnu.org>
parents:
diff changeset
547
Dave Love <fx@gnu.org>
parents:
diff changeset
548 \vskip 2ex
Dave Love <fx@gnu.org>
parents:
diff changeset
549 \key{Overwrite {\it n} lines}{{\it n} R}
Dave Love <fx@gnu.org>
parents:
diff changeset
550
Dave Love <fx@gnu.org>
parents:
diff changeset
551 \subsection{Put Back Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
552
Dave Love <fx@gnu.org>
parents:
diff changeset
553 Deleted/yanked/changed text can be put back by the following commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
554
Dave Love <fx@gnu.org>
parents:
diff changeset
555 \key{{\bf Put} back at point/above line}{P}
Dave Love <fx@gnu.org>
parents:
diff changeset
556 \key{... from register {\it x}}{" {\it x\/} P}
Dave Love <fx@gnu.org>
parents:
diff changeset
557 \key{{\bf put} back after point/below line}{p}
Dave Love <fx@gnu.org>
parents:
diff changeset
558 \key{... from register {\it x}}{" {\it x\/} p}
Dave Love <fx@gnu.org>
parents:
diff changeset
559
Dave Love <fx@gnu.org>
parents:
diff changeset
560 \subsection{Repeating and Undoing Modifications}
Dave Love <fx@gnu.org>
parents:
diff changeset
561
Dave Love <fx@gnu.org>
parents:
diff changeset
562 \key{{\bf undo} last change}{u {\rm or} :und}
Dave Love <fx@gnu.org>
parents:
diff changeset
563 \key{repeat last change}{.\ {\rm (dot)}}
Dave Love <fx@gnu.org>
parents:
diff changeset
564
Dave Love <fx@gnu.org>
parents:
diff changeset
565 Undo is undoable by \kbd{u} and repeatable by \kbd{.}.
Dave Love <fx@gnu.org>
parents:
diff changeset
566 For example, \kbd{u...} will undo 4 previous changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
567 A \kbd{.} after \kbd{5dd} is equivalent to \kbd{5dd},
Dave Love <fx@gnu.org>
parents:
diff changeset
568 while \kbd{3.} after \kbd{5dd} is equivalent to \kbd{3dd}.
Dave Love <fx@gnu.org>
parents:
diff changeset
569
Dave Love <fx@gnu.org>
parents:
diff changeset
570 \section{Miscellaneous Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
571
Dave Love <fx@gnu.org>
parents:
diff changeset
572 \endindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
573
Dave Love <fx@gnu.org>
parents:
diff changeset
574 \paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
575 \fivecol{}{{\bf shift left}}{{\bf shift right}}{{\bf filter shell command}}{{\bf indent}}
Dave Love <fx@gnu.org>
parents:
diff changeset
576 \fivecol{region}{< {\it m}}{> {\it m}}{!\ {\it m\/} {\sl shell-com}}{= {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
577 \fivecol{line}{< <}{> >}{!\ !\ {\sl shell-com}}{= =}
Dave Love <fx@gnu.org>
parents:
diff changeset
578 }
Dave Love <fx@gnu.org>
parents:
diff changeset
579
Dave Love <fx@gnu.org>
parents:
diff changeset
580 \key{{\bf join} lines}{J}
Dave Love <fx@gnu.org>
parents:
diff changeset
581 \key{toggle case (takes count)}{\~{}}
Dave Love <fx@gnu.org>
parents:
diff changeset
582
Dave Love <fx@gnu.org>
parents:
diff changeset
583 \key{view register {\it x}}{] {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
584 \key{view marker {\it x}}{] {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
585
Dave Love <fx@gnu.org>
parents:
diff changeset
586 \key{lowercase region}{\# c {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
587 \key{uppercase region}{\# C {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
588 \key{execute last keyboard macro on each line in the region}{\# g {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
589
Dave Love <fx@gnu.org>
parents:
diff changeset
590 \key{insert specified string for each line in the region}{\# q {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
591 \key{check spelling of the words in the region}{\# s {\it m}}
Dave Love <fx@gnu.org>
parents:
diff changeset
592
Dave Love <fx@gnu.org>
parents:
diff changeset
593 \key{repeat previous ex substitution}{\&}
Dave Love <fx@gnu.org>
parents:
diff changeset
594 \key{change to previous file}{C-^}
Dave Love <fx@gnu.org>
parents:
diff changeset
595
Dave Love <fx@gnu.org>
parents:
diff changeset
596 \key{Viper Meta key}{_}
Dave Love <fx@gnu.org>
parents:
diff changeset
597
Dave Love <fx@gnu.org>
parents:
diff changeset
598 \section{Customization}
Dave Love <fx@gnu.org>
parents:
diff changeset
599
Dave Love <fx@gnu.org>
parents:
diff changeset
600 By default, search is case sensitive.
Dave Love <fx@gnu.org>
parents:
diff changeset
601 You can change this by including the following line in your \kbd{\~{}/.vip} file.
Dave Love <fx@gnu.org>
parents:
diff changeset
602
Dave Love <fx@gnu.org>
parents:
diff changeset
603 \hskip 5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
604 \kbd{(setq viper-case-fold-search t)}
Dave Love <fx@gnu.org>
parents:
diff changeset
605
Dave Love <fx@gnu.org>
parents:
diff changeset
606 The following is a subset of the variety of
Dave Love <fx@gnu.org>
parents:
diff changeset
607 options available for customizing Viper.
Dave Love <fx@gnu.org>
parents:
diff changeset
608 See the Viper manual for details on these and other options.
Dave Love <fx@gnu.org>
parents:
diff changeset
609
Dave Love <fx@gnu.org>
parents:
diff changeset
610 \beginindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
611
Dave Love <fx@gnu.org>
parents:
diff changeset
612 \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
613 \twocol{{\bf variable}}{{\bf default value}}
Dave Love <fx@gnu.org>
parents:
diff changeset
614 \twocol{viper-search-wrap-around}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
615 \twocol{viper-case-fold-search}{nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
616 \twocol{viper-re-search}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
617 \twocol{viper-re-replace}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
618 \twocol{viper-re-query-replace}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
619 \twocol{viper-auto-indent}{nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
620 \twocol{viper-shift-width}{8}
Dave Love <fx@gnu.org>
parents:
diff changeset
621 \twocol{viper-tags-file-name}{"TAGS"}
Dave Love <fx@gnu.org>
parents:
diff changeset
622 \twocol{viper-no-multiple-ESC}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
623 \twocol{viper-ex-style-motion}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
624 \twocol{viper-always}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
625 \twocol{viper-custom-file-name}{"\~{}/.vip"}
Dave Love <fx@gnu.org>
parents:
diff changeset
626 \twocol{ex-find-file-shell}{"csh"}
Dave Love <fx@gnu.org>
parents:
diff changeset
627 \twocol{ex-cycle-other-window}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
628 \twocol{ex-cycle-through-non-buffers}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
629 \twocol{blink-matching-paren}{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
630 \twocol{buffer-read-only}{{\it buffer dependent}}
Dave Love <fx@gnu.org>
parents:
diff changeset
631 }
Dave Love <fx@gnu.org>
parents:
diff changeset
632
Dave Love <fx@gnu.org>
parents:
diff changeset
633 To bind keys in Vi command state, put lines like these in your
Dave Love <fx@gnu.org>
parents:
diff changeset
634 \kbd{\~{}/.vip} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
635
Dave Love <fx@gnu.org>
parents:
diff changeset
636 \beginexample
Dave Love <fx@gnu.org>
parents:
diff changeset
637 (define-key viper-vi-global-user-map "\\C-v" 'scroll-down)
Dave Love <fx@gnu.org>
parents:
diff changeset
638 (define-key viper-vi-global-user-map "\\C-cm" 'smail)
Dave Love <fx@gnu.org>
parents:
diff changeset
639 \endexample
Dave Love <fx@gnu.org>
parents:
diff changeset
640
Dave Love <fx@gnu.org>
parents:
diff changeset
641
Dave Love <fx@gnu.org>
parents:
diff changeset
642 \newcolumn
Dave Love <fx@gnu.org>
parents:
diff changeset
643
Dave Love <fx@gnu.org>
parents:
diff changeset
644 \title{Ex Commands in Viper}
Dave Love <fx@gnu.org>
parents:
diff changeset
645
Dave Love <fx@gnu.org>
parents:
diff changeset
646 In vi state, an Ex command is entered by typing:
Dave Love <fx@gnu.org>
parents:
diff changeset
647
Dave Love <fx@gnu.org>
parents:
diff changeset
648 \hskip 5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
649 \kbd{:\ {\sl ex-command} RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
650
Dave Love <fx@gnu.org>
parents:
diff changeset
651 \section{Ex Addresses}
Dave Love <fx@gnu.org>
parents:
diff changeset
652
Dave Love <fx@gnu.org>
parents:
diff changeset
653 \paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=2pt&#\tabskip=5pt plus 1 fil&#\cr
Dave Love <fx@gnu.org>
parents:
diff changeset
654 \twocolkey{current line}{.}{next line with {\sl pat}}{/ {\sl pat} /}
Dave Love <fx@gnu.org>
parents:
diff changeset
655 \twocolkey{line {\it n}}{{\it n}}{previous line with {\sl pat}}{?\ {\sl pat} ?}
Dave Love <fx@gnu.org>
parents:
diff changeset
656 \twocolkey{last line}{\$}{{\it n\/} line before {\it a}}{{\it a} - {\it n}}
Dave Love <fx@gnu.org>
parents:
diff changeset
657 \twocolkey{next line}{+}{{\it a\/} through {\it b}}{{\it a\/} , {\it b}}
Dave Love <fx@gnu.org>
parents:
diff changeset
658 \twocolkey{previous line}{-}{line marked with {\it x}}{' {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
659 \twocolkey{entire buffer}{\%}{previous context}{' '}
Dave Love <fx@gnu.org>
parents:
diff changeset
660 }
Dave Love <fx@gnu.org>
parents:
diff changeset
661
Dave Love <fx@gnu.org>
parents:
diff changeset
662 Addresses can be specified in front of a command.
Dave Love <fx@gnu.org>
parents:
diff changeset
663 For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
664
Dave Love <fx@gnu.org>
parents:
diff changeset
665 \hskip 5ex
Dave Love <fx@gnu.org>
parents:
diff changeset
666 \kbd{:.,.+10m\$}
Dave Love <fx@gnu.org>
parents:
diff changeset
667
Dave Love <fx@gnu.org>
parents:
diff changeset
668 moves 11 lines below current line to the end of buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
669
Dave Love <fx@gnu.org>
parents:
diff changeset
670 \section{Ex Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
671
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43258
diff changeset
672 Avoid Ex text manipulation commands except substitute.
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
673 There are better VI equivalents
Dave Love <fx@gnu.org>
parents:
diff changeset
674 for all of them. Also note that all Ex commands expand \% to
Dave Love <fx@gnu.org>
parents:
diff changeset
675 current file name. To include a \% in the command, escape it with a $\backslash$.
Dave Love <fx@gnu.org>
parents:
diff changeset
676 Similarly, \# is replaced by previous file. For Viper, this is the
Dave Love <fx@gnu.org>
parents:
diff changeset
677 first file in the {\sl :args} listing for that buffer. This defaults
Dave Love <fx@gnu.org>
parents:
diff changeset
678 to the previous file in the VI sense if you have one window.
Dave Love <fx@gnu.org>
parents:
diff changeset
679 Ex commands can be made to have history. See the manual for details.
Dave Love <fx@gnu.org>
parents:
diff changeset
680
Dave Love <fx@gnu.org>
parents:
diff changeset
681 \subsection{Ex Text Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
682
Dave Love <fx@gnu.org>
parents:
diff changeset
683 \endindentedkeys
Dave Love <fx@gnu.org>
parents:
diff changeset
684
Dave Love <fx@gnu.org>
parents:
diff changeset
685 \key{mark lines matching {\sl pat} and execute {\sl cmds} on these lines}{:g /{\sl pat}/ {\sl cmds}}
Dave Love <fx@gnu.org>
parents:
diff changeset
686
Dave Love <fx@gnu.org>
parents:
diff changeset
687 \key{mark lines {\it not\/} matching {\sl pat} and execute {\sl cmds} on these lines}{:v /{\sl pat}/ {\sl cmds}}
Dave Love <fx@gnu.org>
parents:
diff changeset
688
Dave Love <fx@gnu.org>
parents:
diff changeset
689
Dave Love <fx@gnu.org>
parents:
diff changeset
690 \key{{\bf move} specified lines after {\sl addr}}{:m {\sl addr}}
Dave Love <fx@gnu.org>
parents:
diff changeset
691 \key{{\bf copy} specified lines after {\sl addr}}{:co\rm\ (or \kbd{:t})\ \sl addr}
Dave Love <fx@gnu.org>
parents:
diff changeset
692 \key{{\bf delete} specified lines [into register {\it x\/}]}{:d {\rm [{\it x\/}]}}
Dave Love <fx@gnu.org>
parents:
diff changeset
693 \key{{\bf yank} specified lines [into register {\it x\/}]}{:y {\rm [{\it x\/}]}}
Dave Love <fx@gnu.org>
parents:
diff changeset
694 \key{{\bf put} back text [from register {\it x\/}]}{:pu {\rm [{\it x\/}]}}
Dave Love <fx@gnu.org>
parents:
diff changeset
695
Dave Love <fx@gnu.org>
parents:
diff changeset
696 \key{{\bf substitute} {\sl repl} for first string on line matching {\sl pat}}{:s /{\sl pat}/{\sl repl}/}
Dave Love <fx@gnu.org>
parents:
diff changeset
697
Dave Love <fx@gnu.org>
parents:
diff changeset
698 \key{repeat last substitution}{:\&}
Dave Love <fx@gnu.org>
parents:
diff changeset
699 \key{repeat previous substitute with previous search pattern as {\sl pat}}{:\~{}}
Dave Love <fx@gnu.org>
parents:
diff changeset
700
Dave Love <fx@gnu.org>
parents:
diff changeset
701 \subsection{Ex File and Shell Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
702
Dave Love <fx@gnu.org>
parents:
diff changeset
703 \key{{\bf edit} file}{:e {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
704 \key{reedit messed up current file}{:e!}
Dave Love <fx@gnu.org>
parents:
diff changeset
705 \key{edit previous file}{:e\#}
Dave Love <fx@gnu.org>
parents:
diff changeset
706 \key{{\bf read} in a file}{:r {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
707 \key{{\bf read} in the output of a shell command}{:r {\sl !command}}
Dave Love <fx@gnu.org>
parents:
diff changeset
708 \key{write out specified lines into {\sl file}}{:w {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
709 \key{save all modified buffers, ask confirmation}{:W {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
710 \key{save all modified buffers, no confirmation}{:WW {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
711 \key{write out specified lines at the end of {\sl file}}{:w>> {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
712 \key{{\bf write} to the input of a shell command}{:w {\sl !command}}
Dave Love <fx@gnu.org>
parents:
diff changeset
713 \key{write out and then quit}{:wq {\sl file}}
Dave Love <fx@gnu.org>
parents:
diff changeset
714
Dave Love <fx@gnu.org>
parents:
diff changeset
715 \key{run a sub{\bf shell} in a window}{:sh}
Dave Love <fx@gnu.org>
parents:
diff changeset
716 \key{execute shell command {\sl command}}{:!\ {\sl command}}
Dave Love <fx@gnu.org>
parents:
diff changeset
717 \key{execute previous shell command with {\it args} appended}{:!! {\sl args}}
Dave Love <fx@gnu.org>
parents:
diff changeset
718
Dave Love <fx@gnu.org>
parents:
diff changeset
719 \subsection{Ex Miscellaneous Commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
720
Dave Love <fx@gnu.org>
parents:
diff changeset
721 \key{define a macro {\it x} that expands to {\sl cmd}}{:map {\it x} {\sl cmd}}
Dave Love <fx@gnu.org>
parents:
diff changeset
722 \key{remove macro expansion associated with {\it x}}{:unma {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
723 \key{define a macro {\it x} that expands to {\sl cmd} in insert state}{:map!\ {\it x} {\sl cmd}}
Dave Love <fx@gnu.org>
parents:
diff changeset
724 \key{remove macro expansion associated with {\it x} in insert state}{:unma!\ {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
725
Dave Love <fx@gnu.org>
parents:
diff changeset
726 \key{print line number}{:.=}
Dave Love <fx@gnu.org>
parents:
diff changeset
727 \key{print last line number}{:=}
Dave Love <fx@gnu.org>
parents:
diff changeset
728 \key{print {\bf version} number of Viper}{:ve}
Dave Love <fx@gnu.org>
parents:
diff changeset
729
Dave Love <fx@gnu.org>
parents:
diff changeset
730 \key{shift specified lines to the right}{:>}
Dave Love <fx@gnu.org>
parents:
diff changeset
731 \key{shift specified lines to the left}{:<}
Dave Love <fx@gnu.org>
parents:
diff changeset
732
Dave Love <fx@gnu.org>
parents:
diff changeset
733 \key{{\bf join} lines}{:j}
Dave Love <fx@gnu.org>
parents:
diff changeset
734 \key{mark specified line to register {\it x}}{:k {\it x}}
Dave Love <fx@gnu.org>
parents:
diff changeset
735 \key{{\bf set} a variable's value}{:se}
Dave Love <fx@gnu.org>
parents:
diff changeset
736 \key{find first definition of {\bf tag} {\sl tag}}{:ta {\sl tag}}
Dave Love <fx@gnu.org>
parents:
diff changeset
737
Dave Love <fx@gnu.org>
parents:
diff changeset
738 \key{Current directory}{:pwd}
Dave Love <fx@gnu.org>
parents:
diff changeset
739
Dave Love <fx@gnu.org>
parents:
diff changeset
740
Dave Love <fx@gnu.org>
parents:
diff changeset
741 \copyrightnotice
Dave Love <fx@gnu.org>
parents:
diff changeset
742
Dave Love <fx@gnu.org>
parents:
diff changeset
743 \bye
Dave Love <fx@gnu.org>
parents:
diff changeset
744
Dave Love <fx@gnu.org>
parents:
diff changeset
745 % Local variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
746 % compile-command: "tex viperCard"
Dave Love <fx@gnu.org>
parents:
diff changeset
747 % End:
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
748
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
749 % arch-tag: e287b45c-4c5e-4bf9-ae28-ead4cd9f68e3