Annotation of GNUtools/emacs/etc/vipcard.tex, revision 1.1

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:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.