annotate etc/viperCard.tex @ 81138:f843e2f7e22c

*** empty log message ***
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Mon, 04 Jun 2007 07:50:42 +0000
parents b25895e8e0f5
children 9d9f31875547 95d0cdf160ea
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
75323
b25895e8e0f5 Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68640
diff changeset
10 % Copyright (C) 1995, 1996, 1997, 2001, 2002, 2003, 2004,
b25895e8e0f5 Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68640
diff changeset
11 % 2005, 2006, 2007 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}
75323
b25895e8e0f5 Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68640
diff changeset
65 \def\year{2007}
b25895e8e0f5 Update copyright for years from Emacs 21 to present (mainly adding
Glenn Morris <rgm@gnu.org>
parents: 68640
diff changeset
66 \def\version{August 2006 v\versionnumber}
25853
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