annotate etc/viperCard.tex @ 55434:f88632e54afb

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