|
|
1.1 root 1: % Quick Reference Card for VIP 3.5 under GNU Emacs version 18 on Unix systems
2: %**start of header
3: \newcount\columnsperpage
4:
5: % This file can be printed with 1, 2, or 3 columns per page (see below).
6: % Specify how many you want here. Nothing else needs to be changed.
7:
8: \columnsperpage=1
9:
10: % Copyright (c) 1987 Free Software Foundation, Inc.
11:
12: % This file is part of GNU Emacs.
13:
14: % GNU Emacs is free software; you can redistribute it and/or modify
15: % it under the terms of the GNU General Public License as published by
16: % the Free Software Foundation; either version 1, or (at your option)
17: % any later version.
18:
19: % GNU Emacs is distributed in the hope that it will be useful,
20: % but WITHOUT ANY WARRANTY; without even the implied warranty of
21: % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22: % GNU General Public License for more details.
23:
24: % You should have received a copy of the GNU General Public License
25: % along with GNU Emacs; see the file COPYING. If not, write to
26: % the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
27:
28: % This file is intended to be processed by plain TeX (TeX82).
29: %
30: % The final reference card has six columns, three on each side.
31: % This file can be used to produce it in any of three ways:
32: % 1 column per page
33: % produces six separate pages, each of which needs to be reduced to 80%.
34: % This gives the best resolution.
35: % 2 columns per page
36: % produces three already-reduced pages.
37: % You will still need to cut and paste.
38: % 3 columns per page
39: % produces two pages which must be printed sideways to make a
40: % ready-to-use 8.5 x 11 inch reference card.
41: % For this you need a dvi device driver that can print sideways.
42: % Which mode to use is controlled by setting \columnsperpage above.
43: %
44: % Author:
45: % Masahiko Sato
46: % Internet: [email protected]
47: % Junet: [email protected]
48: %
49: % The original TeX code for formatting the reference card was written by:
50: % Stephen Gildea
51: % UUCP: mit-erl!gildea
52: % Internet: [email protected]
53:
54:
55: \def\versionnumber{1.2}
56: \def\year{1987}
57: \def\version{September \year\ v\versionnumber}
58:
59: \def\shortcopyrightnotice{\vskip 1ex plus 2 fill
60: \centerline{\small \copyright\ \year\ Free Software Foundation, Inc.
61: Permissions on back. v\versionnumber}}
62:
63: \def\copyrightnotice{
64: %\vskip 1ex plus 2 fill\begingroup\small
65: \vskip 1ex \begingroup\small
66: \centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.}
67: \centerline{designed by Masahiko Sato, \version}
68: \centerline{for VIP 3.5 under GNU Emacs version 18 on Unix systems}
69:
70: Permission is granted to make and distribute copies of
71: this card provided the copyright notice and this permission notice
72: are preserved on all copies.
73:
74: For copies of the GNU Emacs manual, write to the Free Software
75: Foundation, Inc., 1000 Massachusetts Ave, Cambridge MA 02138.
76:
77: \endgroup}
78:
79: % make \bye not \outer so that the \def\bye in the \else clause below
80: % can be scanned without complaint.
81: \def\bye{\par\vfill\supereject\end}
82:
83: \newdimen\intercolumnskip
84: \newbox\columna
85: \newbox\columnb
86:
87: \def\ncolumns{\the\columnsperpage}
88:
89: \message{[\ncolumns\space
90: column\if 1\ncolumns\else s\fi\space per page]}
91:
92: \def\scaledmag#1{ scaled \magstep #1}
93:
94: % This multi-way format was designed by Stephen Gildea
95: % October 1986.
96: % Slightly modified by Masahiko Sato, September 1987.
97: \if 1\ncolumns
98: \hsize 4in
99: \vsize 10in
100: %\voffset -.7in
101: \voffset -.57in
102: \font\titlefont=\fontname\tenbf \scaledmag3
103: \font\headingfont=\fontname\tenbf \scaledmag2
104: \font\miniheadingfont=\fontname\tenbf \scaledmag1 % masahiko
105: \font\smallfont=\fontname\sevenrm
106: \font\smallsy=\fontname\sevensy
107:
108: \footline{\hss\folio}
109: \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}}
110: \else
111: %\hsize 3.2in
112: %\vsize 7.95in
113: \hsize 3.41in % masahiko
114: \vsize 8in % masahiko
115: \hoffset -.75in
116: \voffset -.745in
117: \font\titlefont=cmbx10 \scaledmag2
118: \font\headingfont=cmbx10 \scaledmag1
119: \font\miniheadingfont=cmbx10 % masahiko
120: \font\smallfont=cmr6
121: \font\smallsy=cmsy6
122: \font\eightrm=cmr8
123: \font\eightbf=cmbx8
124: \font\eightit=cmti8
125: \font\eightsl=cmsl8
126: \font\eighttt=cmtt8
127: \font\eightsy=cmsy8
128: \textfont0=\eightrm
129: \textfont2=\eightsy
130: \def\rm{\eightrm}
131: \def\bf{\eightbf}
132: \def\it{\eightit}
133: \def\sl{\eightsl} % masahiko
134: \def\tt{\eighttt}
135: \normalbaselineskip=.8\normalbaselineskip
136: \normallineskip=.8\normallineskip
137: \normallineskiplimit=.8\normallineskiplimit
138: \normalbaselines\rm %make definitions take effect
139:
140: \if 2\ncolumns
141: \let\maxcolumn=b
142: \footline{\hss\rm\folio\hss}
143: \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}}
144: \else \if 3\ncolumns
145: \let\maxcolumn=c
146: \nopagenumbers
147: \else
148: \errhelp{You must set \columnsperpage equal to 1, 2, or 3.}
149: \errmessage{Illegal number of columns per page}
150: \fi\fi
151:
152: %\intercolumnskip=.46in
153: \intercolumnskip=.19in % masahiko .19x4 + 3.41x3 = 10.99
154: \def\abc{a}
155: \output={%
156: % This next line is useful when designing the layout.
157: %\immediate\write16{Column \folio\abc\space starts with \firstmark}
158: \if \maxcolumn\abc \multicolumnformat \global\def\abc{a}
159: \else\if a\abc
160: \global\setbox\columna\columnbox \global\def\abc{b}
161: %% in case we never use \columnb (two-column mode)
162: \global\setbox\columnb\hbox to -\intercolumnskip{}
163: \else
164: \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi}
165: \def\multicolumnformat{\shipout\vbox{\makeheadline
166: \hbox{\box\columna\hskip\intercolumnskip
167: \box\columnb\hskip\intercolumnskip\columnbox}
168: \makefootline}\advancepageno}
169: \def\columnbox{\leftline{\pagebody}}
170:
171: \def\bye{\par\vfill\supereject
172: \if a\abc \else\null\vfill\eject\fi
173: \if a\abc \else\null\vfill\eject\fi
174: \end}
175: \fi
176:
177: % we won't be using math mode much, so redefine some of the characters
178: % we might want to talk about
179: \catcode`\^=12
180: \catcode`\_=12
181:
182: \chardef\\=`\\
183: \chardef\{=`\{
184: \chardef\}=`\}
185:
186: \hyphenation{mini-buf-fer}
187:
188: \parindent 0pt
189: \parskip 1ex plus .5ex minus .5ex
190:
191: \def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
192:
193: \outer\def\newcolumn{\vfill\eject}
194:
195: \outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex}
196:
197: \outer\def\section#1{\par\filbreak
198: \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}%
199: \vskip 2ex plus 1ex minus 1.5ex}
200:
201: % masahiko
202: \outer\def\subsection#1{\par\filbreak
203: \vskip 2ex plus 2ex minus 2ex {\miniheadingfont #1}\mark{#1}%
204: \vskip 1ex plus 1ex minus 1.5ex}
205:
206: \newdimen\keyindent
207:
208: \def\beginindentedkeys{\keyindent=1em}
209: \def\endindentedkeys{\keyindent=0em}
210: \endindentedkeys
211:
212: \def\paralign{\vskip\parskip\halign}
213:
214: \def\<#1>{$\langle${\rm #1}$\rangle$}
215:
216: \def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows
217:
218: \def\beginexample{\par\leavevmode\begingroup
219: \obeylines\obeyspaces\parskip0pt\tt}
220: {\obeyspaces\global\let =\ }
221: \def\endexample{\endgroup}
222:
223: \def\key#1#2{\leavevmode\hbox to \hsize{\vtop
224: {\hsize=.75\hsize\rightskip=1em
225: \hskip\keyindent\relax#1}\kbd{#2}\hfil}}
226:
227: \newbox\metaxbox
228: \setbox\metaxbox\hbox{\kbd{M-x }}
229: \newdimen\metaxwidth
230: \metaxwidth=\wd\metaxbox
231:
232: \def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize
233: {\hskip\keyindent\relax#1\hfil}%
234: \hskip -\metaxwidth minus 1fil
235: \kbd{#2}\hfil}}
236:
237: \def\fivecol#1#2#3#4#5{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad
238: &\kbd{#3}\quad&\kbd{#4}\quad&\kbd{#5}\cr}
239:
240: \def\fourcol#1#2#3#4{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad
241: &\kbd{#3}\quad&\kbd{#4}\quad\cr}
242:
243: \def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad
244: &\kbd{#3}\quad\cr}
245:
246: \def\twocol#1#2{\hskip\keyindent\relax\kbd{#1}\hfil&\kbd{#2}\quad\cr}
247:
248: \def\twocolkey#1#2#3#4{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad&\relax#3\hfil&\kbd{#4}\quad\cr}
249:
250: %**end of header
251:
252: \beginindentedkeys
253:
254: \title{VIP Quick Reference Card}
255:
256: \centerline{(for version 3.5 under GNU Emacs version 18)}
257:
258: %\copyrightnotice
259:
260: \section{Loading VIP}
261:
262: Just type \kbd{M-x vip-mode} followed by \kbd{RET}
263:
264: \section{VIP Modes}
265:
266: VIP has three modes: {\it emacs mode}, {\it vi mode} and {\it insert mode}.
267: Mode line tells you which mode you are in.
268: In emacs mode you can do all the normal GNU Emacs editing.
269: This card explains only vi mode and insert mode.
270: {\bf GNU Emacs Reference Card} explains emacs mode.
271: You can switch modes as follows.
272:
273: \key{from emacs mode to vi mode}{C-z}
274: \key{from vi mode to emacs mode}{C-z}
275: \metax{from vi mode to insert mode}{i, I, a, A, o, O {\rm or} C-o}
276: \key{from insert mode to vi mode}{ESC}
277:
278: If you wish to be in vi mode just after you startup Emacs,
279: include the line:
280:
281: \hskip 5ex
282: \kbd{(setq term-setup-hook 'vip-mode)}
283:
284: in your \kbd{.emacs} file.
285: Or, you can put the following alias in your \kbd{.cshrc} file.
286:
287: \hskip 5ex
288: \kbd{alias vip 'emacs \\!* -f vip-mode'}
289:
290:
291: \section{Insert Mode}
292: Insert mode is like emacs mode except for the following.
293:
294: \key{go back to vi mode}{ESC}
295: \key{delete previous character}{C-h}
296: \key{delete previous word}{C-w}
297: \key{emulate \kbd{ESC} key in emacs mode}{C-z}
298:
299: The rest of this card explains commands in {\bf vi mode}.
300:
301: \section{Getting Information on VIP}
302:
303: Execute info command by typing \kbd{M-x info} and select menu item
304: \kbd{vip}. Also:
305:
306: \key{describe function attached to the key {\it x}}{C-h k {\it x}}
307:
308: \section{Leaving Emacs}
309:
310: \key{suspend Emacs}{X Z {\rm or} :st}
311: \metax{exit Emacs permanently}{Z Z {\rm or} X C {\rm or} :q}
312:
313: \section{Error Recovery}
314:
315: \key{abort partially typed or executing command}{C-g}
316: \key{redraw messed up screen}{C-l}
317: \metax{{\bf recover} a file lost by a system crash}{M-x recover-file}
318: \metax{restore a buffer to its original contents}{M-x revert-buffer}
319:
320: \shortcopyrightnotice
321:
322: \section{Counts}
323:
324: Most commands in vi mode accept a {\it count} which can be supplied as a
325: prefix to the commands. In most cases, if a count is given, the
326: command is executed that many times. E.g., \kbd{5 d d} deletes 5
327: lines.
328:
329: %\shortcopyrightnotice
330: \section{Registers}
331:
332: There are 26 registers (\kbd{a} to \kbd{z}) that can store texts
333: and marks.
334: You can append a text at the end of a register (say \kbd{x}) by
335: specifying the register name in capital letter (say \kbd{X}).
336: There are also 9 read only registers (\kbd{1} to \kbd{9}) that store
337: up to 9 previous changes.
338: We will use {\it x\/} to denote a register.
339: \section{Entering Insert Mode}
340:
341: \key{{\bf insert} at point}{i}
342: \key{{\bf append} after cursor}{a}
343: \key{{\bf insert} before first non-white}{I}
344: \key{{\bf append} at end of line}{A}
345: \key{{\bf open} line below}{o}
346: \key{{\bf open} line above}{O}
347: \key{{\bf open} line at point}{C-o}
348:
349: \section{Buffers and Windows}
350:
351: \key{move cursor to {\bf next} window}{C-n}
352: \key{delete current window}{X 0}
353: \key{delete other windows}{X 1}
354: \key{split current window into two windows}{X 2}
355: \key{show current buffer in two windows}{X 3}
356: \key{{\bf switch} to a buffer in the current window}{s {\sl buffer}}
357: \key{{\bf switch} to a buffer in another window}{S {\sl buffer}}
358: \key{{\bf kill} a buffer}{K}
359: \key{list exisiting {\bf buffers}}{X B}
360:
361: \section{Files}
362:
363: \metax{{\bf visit} file in the current window}{v {\sl file} {\rm or} :e {\sl file}}
364: \key{{\bf visit} file in another window}{V {\sl file}}
365: \key{{\bf save} buffer to the associated file}{X S}
366: \key{{\bf write} buffer to a specified file}{X W}
367: \key{{\bf insert} a specified file at point}{X I}
368: \key{{\bf get} information on the current {\bf file}}{g {\rm or} :f}
369: \key{run the {\bf directory} editor}{X d}
370:
371: \section{Viewing the Buffer}
372:
373: \key{scroll to next screen}{SPC {\rm or} C-f}
374: \key{scroll to previous screen}{RET {\rm or} C-b}
375: \key{scroll {\bf down} half screen}{C-d}
376: \key{scroll {\bf up} half screen}{C-u}
377: \key{scroll down one line}{C-e}
378: \key{scroll up one line}{C-y}
379:
380: \key{put current line on the {\bf home} line}{z H {\rm or} z RET}
381: \key{put current line on the {\bf middle} line}{z M {\rm or} z .}
382: \key{put current line on the {\bf last} line}{z L {\rm or} z -}
383:
384: \section{Marking and Returning}
385:
386: \key{{\bf mark} point in register {\it x}}{m {\it x}}
387: \key{set mark at buffer beginning}{m <}
388: \key{set mark at buffer end}{m >}
389: \key{set mark at point}{m .}
390: \key{jump to mark}{m ,}
391: \key{exchange point and mark}{` `}
392: \key{... and skip to first non-white on line}{' '}
393: \key{go to mark {\it x}}{` {\it x}}
394: \key{... and skip to first non-white on line}{' {\it x}}
395:
396: \section{Macros}
397:
398: \key{start remembering keyboard macro}{X (}
399: \key{finish remembering keyboard macro}{X )}
400: \key{call last keyboard macro}{*}
401: \key{execute macro stored in register {\it x}}{@ {\it x}}
402:
403: \section{Motion Commands}
404:
405: \key{go backward one character}{h}
406: \key{go forward one character}{l}
407: \key{next line keeping the column}{j}
408: \key{previous line keeping the column}{k}
409: \key{next line at first non-white}{+}
410: \key{previous line at first non-white}{-}
411:
412: \key{beginning of line}{0}
413: \key{first non-white on line}{^}
414: \key{end of line}{\$}
415: \key{go to {\it n}-th column on line}{{\it n} |}
416:
417: \key{go to {\it n}-th line}{{\it n} G}
418: \key{go to last line}{G}
419: \key{find matching parenthesis for \kbd{()}, \kbd{\{\}} and \kbd{[]}}{\%}
420:
421: \key{go to {\bf home} window line}{H}
422: \key{go to {\bf middle} window line}{M}
423: \key{go to {\bf last} window line}{L}
424:
425: \subsection{Words, Sentences, Paragraphs}
426:
427: \key{forward {\bf word}}{w {\rm or} W}
428: \key{{\bf backward} word}{b {\rm or} B}
429: \key{{\bf end} of word}{e {\rm or} E}
430:
431: In the case of capital letter commands, a word is delimited by a
432: non-white character.
433:
434: \key{forward sentence}{)}
435: \key{backward sentence}{(}
436:
437: \key{forward paragraph}{\}}
438: \key{backward paragraph}{\{}
439:
440: \subsection{Find Characters on the Line}
441:
442: \key{{\bf find} {\it c} forward on line}{f {\it c}}
443: \key{{\bf find} {\it c} backward on line}{F {\it c}}
444: \key{up {\bf to} {\it c} forward on line}{t {\it c}}
445: \key{up {\bf to} {\it c} backward on line}{T {\it c}}
446: \key{repeat previous \kbd{f}, \kbd{F}, \kbd{t} or \kbd{T}}{;}
447: \key{... in the opposite direction}{,}
448:
449: \newcolumn
450: \title{VIP Quick Reference Card}
451:
452: \section{Searching and Replacing}
453:
454: \key{search forward for {\sl pat}}{/ {\sl pat}}
455: \key{search backward for {\sl pat}}{?\ {\sl pat}}
456: \key{repeat previous search}{n}
457: \key{... in the opposite direction}{N}
458:
459: \key{incremental {\bf search}}{C-s}
460: \key{{\bf reverse} incremental search}{C-r}
461:
462: \key{{\bf replace}}{R}
463: \key{{\bf query} replace}{Q}
464: \key{{\bf replace} a character by another character {\it c}}{r {\it c}}
465:
466: \section{Modifying Commands}
467:
468: The delete (yank, change) commands explained below accept a motion command as
469: their argument and delete (yank, change) the region determined by the motion
470: command. Motion commands are classified into {\it point commands} and
471: {\it line commands}. In the case of line commands, whole lines will
472: be affected by the command. Motion commands will be represented by
473: {\it m} below.
474:
475: The point commands are as follows:
476:
477: \hskip 5ex
478: \kbd{h l 0 ^ \$ w W b B e E ( ) / ?\ ` f F t T \% ; ,}
479:
480: The line commands are as follows:
481:
482: \hskip 5ex
483: \kbd{j k + - H M L \{ \} G '}
484:
485: \subsection{Delete/Yank/Change Commands}
486:
487: \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\cr
488: \fourcol{}{{\bf delete}}{{\bf yank}}{{\bf change}}
489: \fourcol{region determined by {\it m}}{d {\it m}}{y {\it m}}{c {\it m}}
490: \fourcol{... into register {\it x}}{" {\it x\/} d {\it m}}{" {\it x\/} y {\it m}}{" {\it x\/} c {\it m}}
491: \fourcol{a line}{d d}{Y {\rm or} y y}{c c}
492: \fourcol{current {\bf region}}{d r}{y r}{c r}
493: \fourcol{expanded {\bf region}}{d R}{y R}{c R}
494: \fourcol{to end of line}{D}{y \$}{c \$}
495: \fourcol{a character after point}{x}{y l}{c l}
496: \fourcol{a character before point}{DEL}{y h}{c h}
497: }
498:
499: \subsection{Put Back Commands}
500:
501: Deleted/yanked/changed text can be put back by the following commands.
502:
503: \key{{\bf Put} back at point/above line}{P}
504: \key{... from register {\it x}}{" {\it x\/} P}
505: \key{{\bf put} back after point/below line}{p}
506: \key{... from register {\it x}}{" {\it x\/} p}
507:
508: \subsection{Repeating and Undoing Modifications}
509:
510: \key{{\bf undo} last change}{u {\rm or} :und}
511: \key{repeat last change}{.\ {\rm (dot)}}
512:
513: Undo is undoable by \kbd{u} and repeatable by \kbd{.}.
514: For example, \kbd{u...} will undo 4 previous changes.
515: A \kbd{.} after \kbd{5dd} is equivalent to \kbd{5dd},
516: while \kbd{3.} after \kbd{5dd} is equivalent to \kbd{3dd}.
517:
518: \section{Miscellaneous Commands}
519:
520: \endindentedkeys
521:
522: \paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\tabskip=0pt&#\cr
523: \fivecol{}{{\bf shift left}}{{\bf shift right}}{{\bf filter shell command}}{{\bf indent}}
524: \fivecol{region}{< {\it m}}{> {\it m}}{!\ {\it m\/} {\sl shell-com}}{= {\it m}}
525: \fivecol{line}{< <}{> >}{!\ !\ {\sl shell-com}}{= =}
526: }
527:
528: \key{emulate \kbd{ESC}/\kbd{C-h} in emacs mode}{ESC{\rm /}C-h}
529: \key{emulate \kbd{C-c}/\kbd{C-x} in emacs mode}{C{\rm /}X}
530:
531: \key{{\bf join} lines}{J}
532:
533: \key{lowercase region}{\# c {\it m}}
534: \key{uppercase region}{\# C {\it m}}
535: \key{execute last keyboard macro on each line in the region}{\# g {\it m}}
536:
537: \key{insert specified string for each line in the region}{\# q {\it m}}
538: \key{check spelling of the words in the region}{\# s {\it m}}
539:
540: \section{Differences from Vi}
541:
542: \beginindentedkeys
543:
544: In VIP some keys behave rather differently from Vi.
545: The table below lists such keys, and you can get the effect of typing
546: these keys by typing the corresponding keys in the VIP column.
547:
548: \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
549: \threecol{}{{\bf Vi}}{{\bf VIP}}
550: \threecol{forward character}{SPC}{l}
551: \threecol{backward character}{C-h}{h}
552: \threecol{next line at first non-white}{RET}{+}
553: \threecol{delete previous character}{X}{DEL}
554: \threecol{get information on file}{C-g}{g}
555: \threecol{substitute characters}{s}{x i}
556: \threecol{substitute line}{S}{c c}
557: \threecol{change to end of line}{C {\rm or} R}{c \$}
558: }
559:
560: (Strictly speaking, \kbd{C} and \kbd{R} behave slightly differently in Vi.)
561:
562: \section{Customization}
563:
564: By default, search is case sensitive.
565: You can change this by including the following line in your \kbd{.vip} file.
566:
567: \hskip 5ex
568: \kbd{(setq vip-case-fold-search t)}
569:
570: \beginindentedkeys
571:
572: \paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr
573: \twocol{{\bf variable}}{{\bf default value}}
574: \twocol{vip-search-wrap-around}{t}
575: \twocol{vip-case-fold-search}{nil}
576: \twocol{vip-re-search}{nil}
577: \twocol{vip-re-replace}{nil}
578: \twocol{vip-re-query-replace}{nil}
579: \twocol{vip-open-with-indent}{nil}
580: \twocol{vip-help-in-insert-mode}{nil}
581: \twocol{vip-shift-width}{8}
582: \twocol{vip-tags-file-name}{"TAGS"}
583: }
584:
585: %\subsection{Customizing Key Bindings}
586:
587: Include (some of) following lines in your \kbd{.vip} file
588: to restore Vi key bindings.
589:
590: \beginexample
591: (define-key vip-mode-map "\\C-g" 'vip-info-on-file)
592: (define-key vip-mode-map "\\C-h" 'vip-backward-char)
593: (define-key vip-mode-map "\\C-m" 'vip-next-line-at-bol)
594: (define-key vip-mode-map " " 'vip-forward-char)
595: (define-key vip-mode-map "g" 'vip-keyboard-quit)
596: (define-key vip-mode-map "s" 'vip-substitute)
597: (define-key vip-mode-map "C" 'vip-change-to-eol)
598: (define-key vip-mode-map "R" 'vip-change-to-eol)
599: (define-key vip-mode-map "S" 'vip-substitute-line)
600: (define-key vip-mode-map "X" 'vip-delete-backward-char)
601: \endexample
602:
603: \newcolumn
604:
605: \title{Ex Commands in VIP}
606:
607: In vi mode, an Ex command is entered by typing:
608:
609: \hskip 5ex
610: \kbd{:\ {\sl ex-command} RET}
611:
612: \section{Ex Addresses}
613:
614: \paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=2pt&#\tabskip=5pt plus 1 fil&#\cr
615: \twocolkey{current line}{.}{next line with {\sl pat}}{/ {\sl pat} /}
616: \twocolkey{line {\it n}}{{\it n}}{previous line with {\sl pat}}{?\ {\sl pat} ?}
617: \twocolkey{last line}{\$}{{\it n\/} line before {\it a}}{{\it a} - {\it n}}
618: \twocolkey{next line}{+}{{\it a\/} through {\it b}}{{\it a\/} , {\it b}}
619: \twocolkey{previous line}{-}{line marked with {\it x}}{' {\it x}}
620: \twocolkey{entire buffer}{\%}{previous context}{' '}
621: }
622:
623: Addresses can be specified in front of a command.
624: For example,
625:
626: \hskip 5ex
627: \kbd{:.,.+10m\$}
628:
629: moves 11 lines below current line to the end of buffer.
630:
631: \section{Ex Commands}
632:
633: \endindentedkeys
634:
635: \key{mark lines matching {\sl pat} and execute {\sl cmds} on these lines}{:g /{\sl pat}/ {\sl cmds}}
636:
637: \key{mark lines {\it not\/} matching {\sl pat} and execute {\sl cmds} on these lines}{:v /{\sl pat}/ {\sl cmds}}
638:
639:
640: \key{{\bf move} specified lines after {\sl addr}}{:m {\sl addr}}
641: \key{{\bf copy} specified lines after {\sl addr}}{:co\rm\ (or \kbd{:t})\ \sl addr}
642: \key{{\bf delete} specified lines [into register {\it x\/}]}{:d {\rm [{\it x\/}]}}
643: \key{{\bf yank} specified lines [into register {\it x\/}]}{:y {\rm [{\it x\/}]}}
644: \key{{\bf put} back text [from register {\it x\/}]}{:pu {\rm [{\it x\/}]}}
645:
646: \key{{\bf substitute} {\sl repl} for first string on line matching {\sl pat}}{:s /{\sl pat}/{\sl repl}/}
647:
648: \key{repeat last substitution}{:\&}
649: \key{repeat previous substitute with previous search pattern as {\sl pat}}{:\~{}}
650:
651: \key{{\bf read} in a file}{:r {\sl file}}
652: \key{{\bf read} in the output of a shell command}{:r!\ {\sl command}}
653: \key{write out specified lines into {\sl file}}{:w {\sl file}}
654: \key{write out specified lines at the end of {\sl file}}{:w>> {\sl file}}
655: \key{write out and then quit}{:wq {\sl file}}
656:
657: \key{define a macro {\it x} that expands to {\sl cmd}}{:map {\it x} {\sl cmd}}
658: \key{remove macro expansion associated with {\it x}}{:unma {\it x}}
659:
660: \key{print line number}{:=}
661: \key{print {\bf version} number of VIP}{:ve}
662:
663: \key{shift specified lines to the right}{:>}
664: \key{shift specified lines to the left}{:<}
665:
666: \key{{\bf join} lines}{:j}
667: \key{mark specified line to register {\it x}}{:k {\it x}}
668: \key{{\bf set} a variable's value}{:se}
669: \key{run a sub{\bf shell} in a window}{:sh}
670: \key{execute shell command {\sl command}}{:!\ {\sl command}}
671: \key{find first definition of {\bf tag} {\sl tag}}{:ta {\sl tag}}
672:
673:
674: \copyrightnotice
675:
676: \bye
677:
678: % Local variables:
679: % compile-command: "tex refcard"
680: % End:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.