# HG changeset patch # User Glenn Morris # Date 1187767673 0 # Node ID bea1e4690e03d0c90e17d493a1e7567bf1bc8b33 # Parent eab21677ffd4d2a7e5dcf626d0efd2d7a08bddad Move refcards from etc/ to etc/refcards/ diff -r eab21677ffd4 -r bea1e4690e03 etc/refcards/vipcard.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/refcards/vipcard.tex Wed Aug 22 07:27:53 2007 +0000 @@ -0,0 +1,684 @@ +% Quick Reference Card for VIP 3.5 under GNU Emacs version 18 on Unix systems +%**start of header +\newcount\columnsperpage + +% This file can be printed with 1, 2, or 3 columns per page (see below). +% Specify how many you want here. Nothing else needs to be changed. + +\columnsperpage=1 + +% Copyright (C) 1987, 2001, 2002, 2003, 2004, 2005, +% 2006, 2007 Free Software Foundation, Inc. + +% This file is part of GNU Emacs. + +% GNU Emacs is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 3, or (at your option) +% any later version. + +% GNU Emacs is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. + +% You should have received a copy of the GNU General Public License +% along with GNU Emacs; see the file COPYING. If not, write to +% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +% Boston, MA 02110-1301, USA. + +% This file is intended to be processed by plain TeX (TeX82). +% +% The final reference card has six columns, three on each side. +% This file can be used to produce it in any of three ways: +% 1 column per page +% produces six separate pages, each of which needs to be reduced to 80%. +% This gives the best resolution. +% 2 columns per page +% produces three already-reduced pages. +% You will still need to cut and paste. +% 3 columns per page +% produces two pages which must be printed sideways to make a +% ready-to-use 8.5 x 11 inch reference card. +% For this you need a dvi device driver that can print sideways. +% Which mode to use is controlled by setting \columnsperpage above. +% +% Author: +% Masahiko Sato +% Internet: ms@sail.stanford.edu +% Junet: masahiko@sato.riec.tohoku.junet +% +% The original TeX code for formatting the reference card was written by: +% Stephen Gildea +% UUCP: mit-erl!gildea +% Internet: gildea@stop.mail-abuse.org + + +\def\versionnumber{1.2} +\def\year{2007} +\def\version{September 2006\ v\versionnumber} + +\def\shortcopyrightnotice{\vskip 1ex plus 2 fill + \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. + Permissions on back. v\versionnumber}} + +\def\copyrightnotice{ +%\vskip 1ex plus 2 fill\begingroup\small +\vskip 1ex \begingroup\small +\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} +\centerline{designed by Masahiko Sato, \version} +\centerline{for VIP 3.5 under GNU Emacs version 18 on Unix systems} + +Permission is granted to make and distribute copies of +this card provided the copyright notice and this permission notice +are preserved on all copies. + +For copies of the GNU Emacs manual, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +\endgroup} + +% make \bye not \outer so that the \def\bye in the \else clause below +% can be scanned without complaint. +\def\bye{\par\vfill\supereject\end} + +\newdimen\intercolumnskip +\newbox\columna +\newbox\columnb + +\def\ncolumns{\the\columnsperpage} + +\message{[\ncolumns\space + column\if 1\ncolumns\else s\fi\space per page]} + +\def\scaledmag#1{ scaled \magstep #1} + +% This multi-way format was designed by Stephen Gildea +% October 1986. +% Slightly modified by Masahiko Sato, September 1987. +\if 1\ncolumns + \hsize 4in + \vsize 10in + %\voffset -.7in + \voffset -.57in + \font\titlefont=\fontname\tenbf \scaledmag3 + \font\headingfont=\fontname\tenbf \scaledmag2 + \font\miniheadingfont=\fontname\tenbf \scaledmag1 % masahiko + \font\smallfont=\fontname\sevenrm + \font\smallsy=\fontname\sevensy + + \footline{\hss\folio} + \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} +\else + %\hsize 3.2in + %\vsize 7.95in + \hsize 3.41in % masahiko + \vsize 8in % masahiko + \hoffset -.75in + \voffset -.745in + \font\titlefont=cmbx10 \scaledmag2 + \font\headingfont=cmbx10 \scaledmag1 + \font\miniheadingfont=cmbx10 % masahiko + \font\smallfont=cmr6 + \font\smallsy=cmsy6 + \font\eightrm=cmr8 + \font\eightbf=cmbx8 + \font\eightit=cmti8 + \font\eightsl=cmsl8 + \font\eighttt=cmtt8 + \font\eightsy=cmsy8 + \textfont0=\eightrm + \textfont2=\eightsy + \def\rm{\eightrm} + \def\bf{\eightbf} + \def\it{\eightit} + \def\sl{\eightsl} % masahiko + \def\tt{\eighttt} + \normalbaselineskip=.8\normalbaselineskip + \normallineskip=.8\normallineskip + \normallineskiplimit=.8\normallineskiplimit + \normalbaselines\rm %make definitions take effect + + \if 2\ncolumns + \let\maxcolumn=b + \footline{\hss\rm\folio\hss} + \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}} + \else \if 3\ncolumns + \let\maxcolumn=c + \nopagenumbers + \else + \errhelp{You must set \columnsperpage equal to 1, 2, or 3.} + \errmessage{Illegal number of columns per page} + \fi\fi + + %\intercolumnskip=.46in + \intercolumnskip=.19in % masahiko .19x4 + 3.41x3 = 10.99 + \def\abc{a} + \output={% + % This next line is useful when designing the layout. + %\immediate\write16{Column \folio\abc\space starts with \firstmark} + \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} + \else\if a\abc + \global\setbox\columna\columnbox \global\def\abc{b} + %% in case we never use \columnb (two-column mode) + \global\setbox\columnb\hbox to -\intercolumnskip{} + \else + \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} + \def\multicolumnformat{\shipout\vbox{\makeheadline + \hbox{\box\columna\hskip\intercolumnskip + \box\columnb\hskip\intercolumnskip\columnbox} + \makefootline}\advancepageno} + \def\columnbox{\leftline{\pagebody}} + + \def\bye{\par\vfill\supereject + \if a\abc \else\null\vfill\eject\fi + \if a\abc \else\null\vfill\eject\fi + \end} +\fi + +% we won't be using math mode much, so redefine some of the characters +% we might want to talk about +\catcode`\^=12 +\catcode`\_=12 + +\chardef\\=`\\ +\chardef\{=`\{ +\chardef\}=`\} + +\hyphenation{mini-buf-fer} + +\parindent 0pt +\parskip 1ex plus .5ex minus .5ex + +\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} + +\outer\def\newcolumn{\vfill\eject} + +\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex} + +\outer\def\section#1{\par\filbreak + \vskip 3ex plus 2ex minus 2ex {\headingfont #1}\mark{#1}% + \vskip 2ex plus 1ex minus 1.5ex} + +% masahiko +\outer\def\subsection#1{\par\filbreak + \vskip 2ex plus 2ex minus 2ex {\miniheadingfont #1}\mark{#1}% + \vskip 1ex plus 1ex minus 1.5ex} + +\newdimen\keyindent + +\def\beginindentedkeys{\keyindent=1em} +\def\endindentedkeys{\keyindent=0em} +\endindentedkeys + +\def\paralign{\vskip\parskip\halign} + +\def\<#1>{$\langle${\rm #1}$\rangle$} + +\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows + +\def\beginexample{\par\leavevmode\begingroup + \obeylines\obeyspaces\parskip0pt\tt} +{\obeyspaces\global\let =\ } +\def\endexample{\endgroup} + +\def\key#1#2{\leavevmode\hbox to \hsize{\vtop + {\hsize=.75\hsize\rightskip=1em + \hskip\keyindent\relax#1}\kbd{#2}\hfil}} + +\newbox\metaxbox +\setbox\metaxbox\hbox{\kbd{M-x }} +\newdimen\metaxwidth +\metaxwidth=\wd\metaxbox + +\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize + {\hskip\keyindent\relax#1\hfil}% + \hskip -\metaxwidth minus 1fil + \kbd{#2}\hfil}} + +\def\fivecol#1#2#3#4#5{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad + &\kbd{#3}\quad&\kbd{#4}\quad&\kbd{#5}\cr} + +\def\fourcol#1#2#3#4{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad + &\kbd{#3}\quad&\kbd{#4}\quad\cr} + +\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad + &\kbd{#3}\quad\cr} + +\def\twocol#1#2{\hskip\keyindent\relax\kbd{#1}\hfil&\kbd{#2}\quad\cr} + +\def\twocolkey#1#2#3#4{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad&\relax#3\hfil&\kbd{#4}\quad\cr} + +%**end of header + +\beginindentedkeys + +\title{VIP Quick Reference Card} + +\centerline{(for version 3.5 under GNU Emacs version 18)} + +%\copyrightnotice + +\section{Loading VIP} + +Just type \kbd{M-x vip-mode} followed by \kbd{RET} + +\section{VIP Modes} + +VIP has three modes: {\it emacs mode}, {\it vi mode} and {\it insert mode}. +Mode line tells you which mode you are in. +In emacs mode you can do all the normal GNU Emacs editing. +This card explains only vi mode and insert mode. +{\bf GNU Emacs Reference Card} explains emacs mode. +You can switch modes as follows. + +\key{from emacs mode to vi mode}{C-z} +\key{from vi mode to emacs mode}{C-z} +\metax{from vi mode to insert mode}{i, I, a, A, o, O {\rm or} C-o} +\key{from insert mode to vi mode}{ESC} + +If you wish to be in vi mode just after you startup Emacs, +include the line: + +\hskip 5ex +\kbd{(setq term-setup-hook 'vip-mode)} + +in your \kbd{.emacs} file. +Or, you can put the following alias in your \kbd{.cshrc} file. + +\hskip 5ex +\kbd{alias vip 'emacs \\!* -f vip-mode'} + + +\section{Insert Mode} +Insert mode is like emacs mode except for the following. + +\key{go back to vi mode}{ESC} +\key{delete previous character}{C-h} +\key{delete previous word}{C-w} +\key{emulate \kbd{ESC} key in emacs mode}{C-z} + +The rest of this card explains commands in {\bf vi mode}. + +\section{Getting Information on VIP} + +Execute info command by typing \kbd{M-x info} and select menu item +\kbd{vip}. Also: + +\key{describe function attached to the key {\it x}}{C-h k {\it x}} + +\section{Leaving Emacs} + +\key{suspend Emacs}{X Z {\rm or} :st} +\metax{exit Emacs permanently}{Z Z {\rm or} X C {\rm or} :q} + +\section{Error Recovery} + +\key{abort partially typed or executing command}{C-g} +\key{redraw messed up screen}{C-l} +\metax{{\bf recover} a file lost by a system crash}{M-x recover-file} +\metax{restore a buffer to its original contents}{M-x revert-buffer} + +\shortcopyrightnotice + +\section{Counts} + +Most commands in vi mode accept a {\it count} which can be supplied as a +prefix to the commands. In most cases, if a count is given, the +command is executed that many times. E.g., \kbd{5 d d} deletes 5 +lines. + +%\shortcopyrightnotice +\section{Registers} + +There are 26 registers (\kbd{a} to \kbd{z}) that can store texts +and marks. +You can append a text at the end of a register (say \kbd{x}) by +specifying the register name in capital letter (say \kbd{X}). +There are also 9 read only registers (\kbd{1} to \kbd{9}) that store +up to 9 previous changes. +We will use {\it x\/} to denote a register. +\section{Entering Insert Mode} + +\key{{\bf insert} at point}{i} +\key{{\bf append} after cursor}{a} +\key{{\bf insert} before first non-white}{I} +\key{{\bf append} at end of line}{A} +\key{{\bf open} line below}{o} +\key{{\bf open} line above}{O} +\key{{\bf open} line at point}{C-o} + +\section{Buffers and Windows} + +\key{move cursor to {\bf next} window}{C-n} +\key{delete current window}{X 0} +\key{delete other windows}{X 1} +\key{split current window into two windows}{X 2} +\key{show current buffer in two windows}{X 3} +\key{{\bf switch} to a buffer in the current window}{s {\sl buffer}} +\key{{\bf switch} to a buffer in another window}{S {\sl buffer}} +\key{{\bf kill} a buffer}{K} +\key{list existing {\bf buffers}}{X B} + +\section{Files} + +\metax{{\bf visit} file in the current window}{v {\sl file} {\rm or} :e {\sl file}} +\key{{\bf visit} file in another window}{V {\sl file}} +\key{{\bf save} buffer to the associated file}{X S} +\key{{\bf write} buffer to a specified file}{X W} +\key{{\bf insert} a specified file at point}{X I} +\key{{\bf get} information on the current {\bf file}}{g {\rm or} :f} +\key{run the {\bf directory} editor}{X d} + +\section{Viewing the Buffer} + +\key{scroll to next screen}{SPC {\rm or} C-f} +\key{scroll to previous screen}{RET {\rm or} C-b} +\key{scroll {\bf down} half screen}{C-d} +\key{scroll {\bf up} half screen}{C-u} +\key{scroll down one line}{C-e} +\key{scroll up one line}{C-y} + +\key{put current line on the {\bf home} line}{z H {\rm or} z RET} +\key{put current line on the {\bf middle} line}{z M {\rm or} z .} +\key{put current line on the {\bf last} line}{z L {\rm or} z -} + +\section{Marking and Returning} + +\key{{\bf mark} point in register {\it x}}{m {\it x}} +\key{set mark at buffer beginning}{m <} +\key{set mark at buffer end}{m >} +\key{set mark at point}{m .} +\key{jump to mark}{m ,} +\key{exchange point and mark}{` `} +\key{... and skip to first non-white on line}{' '} +\key{go to mark {\it x}}{` {\it x}} +\key{... and skip to first non-white on line}{' {\it x}} + +\section{Macros} + +\key{start remembering keyboard macro}{X (} +\key{finish remembering keyboard macro}{X )} +\key{call last keyboard macro}{*} +\key{execute macro stored in register {\it x}}{@ {\it x}} + +\section{Motion Commands} + +\key{go backward one character}{h} +\key{go forward one character}{l} +\key{next line keeping the column}{j} +\key{previous line keeping the column}{k} +\key{next line at first non-white}{+} +\key{previous line at first non-white}{-} + +\key{beginning of line}{0} +\key{first non-white on line}{^} +\key{end of line}{\$} +\key{go to {\it n}-th column on line}{{\it n} |} + +\key{go to {\it n}-th line}{{\it n} G} +\key{go to last line}{G} +\key{find matching parenthesis for \kbd{()}, \kbd{\{\}} and \kbd{[]}}{\%} + +\key{go to {\bf home} window line}{H} +\key{go to {\bf middle} window line}{M} +\key{go to {\bf last} window line}{L} + +\subsection{Words, Sentences, Paragraphs} + +\key{forward {\bf word}}{w {\rm or} W} +\key{{\bf backward} word}{b {\rm or} B} +\key{{\bf end} of word}{e {\rm or} E} + +In the case of capital letter commands, a word is delimited by a +non-white character. + +\key{forward sentence}{)} +\key{backward sentence}{(} + +\key{forward paragraph}{\}} +\key{backward paragraph}{\{} + +\subsection{Find Characters on the Line} + +\key{{\bf find} {\it c} forward on line}{f {\it c}} +\key{{\bf find} {\it c} backward on line}{F {\it c}} +\key{up {\bf to} {\it c} forward on line}{t {\it c}} +\key{up {\bf to} {\it c} backward on line}{T {\it c}} +\key{repeat previous \kbd{f}, \kbd{F}, \kbd{t} or \kbd{T}}{;} +\key{... in the opposite direction}{,} + +\newcolumn +\title{VIP Quick Reference Card} + +\section{Searching and Replacing} + +\key{search forward for {\sl pat}}{/ {\sl pat}} +\key{search backward for {\sl pat}}{?\ {\sl pat}} +\key{repeat previous search}{n} +\key{... in the opposite direction}{N} + +\key{incremental {\bf search}}{C-s} +\key{{\bf reverse} incremental search}{C-r} + +\key{{\bf replace}}{R} +\key{{\bf query} replace}{Q} +\key{{\bf replace} a character by another character {\it c}}{r {\it c}} + +\section{Modifying Commands} + +The delete (yank, change) commands explained below accept a motion command as +their argument and delete (yank, change) the region determined by the motion +command. Motion commands are classified into {\it point commands} and +{\it line commands}. In the case of line commands, whole lines will +be affected by the command. Motion commands will be represented by +{\it m} below. + +The point commands are as follows: + +\hskip 5ex +\kbd{h l 0 ^ \$ w W b B e E ( ) / ?\ ` f F t T \% ; ,} + +The line commands are as follows: + +\hskip 5ex +\kbd{j k + - H M L \{ \} G '} + +\subsection{Delete/Yank/Change Commands} + +\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\cr +\fourcol{}{{\bf delete}}{{\bf yank}}{{\bf change}} +\fourcol{region determined by {\it m}}{d {\it m}}{y {\it m}}{c {\it m}} +\fourcol{... into register {\it x}}{" {\it x\/} d {\it m}}{" {\it x\/} y {\it m}}{" {\it x\/} c {\it m}} +\fourcol{a line}{d d}{Y {\rm or} y y}{c c} +\fourcol{current {\bf region}}{d r}{y r}{c r} +\fourcol{expanded {\bf region}}{d R}{y R}{c R} +\fourcol{to end of line}{D}{y \$}{c \$} +\fourcol{a character after point}{x}{y l}{c l} +\fourcol{a character before point}{DEL}{y h}{c h} +} + +\subsection{Put Back Commands} + +Deleted/yanked/changed text can be put back by the following commands. + +\key{{\bf Put} back at point/above line}{P} +\key{... from register {\it x}}{" {\it x\/} P} +\key{{\bf put} back after point/below line}{p} +\key{... from register {\it x}}{" {\it x\/} p} + +\subsection{Repeating and Undoing Modifications} + +\key{{\bf undo} last change}{u {\rm or} :und} +\key{repeat last change}{.\ {\rm (dot)}} + +Undo is undoable by \kbd{u} and repeatable by \kbd{.}. +For example, \kbd{u...} will undo 4 previous changes. +A \kbd{.} after \kbd{5dd} is equivalent to \kbd{5dd}, +while \kbd{3.} after \kbd{5dd} is equivalent to \kbd{3dd}. + +\section{Miscellaneous Commands} + +\endindentedkeys + +\paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\tabskip=0pt&#\cr +\fivecol{}{{\bf shift left}}{{\bf shift right}}{{\bf filter shell command}}{{\bf indent}} +\fivecol{region}{< {\it m}}{> {\it m}}{!\ {\it m\/} {\sl shell-com}}{= {\it m}} +\fivecol{line}{< <}{> >}{!\ !\ {\sl shell-com}}{= =} +} + +\key{emulate \kbd{ESC}/\kbd{C-h} in emacs mode}{ESC{\rm /}C-h} +\key{emulate \kbd{C-c}/\kbd{C-x} in emacs mode}{C{\rm /}X} + +\key{{\bf join} lines}{J} + +\key{lowercase region}{\# c {\it m}} +\key{uppercase region}{\# C {\it m}} +\key{execute last keyboard macro on each line in the region}{\# g {\it m}} + +\key{insert specified string for each line in the region}{\# q {\it m}} +\key{check spelling of the words in the region}{\# s {\it m}} + +\section{Differences from Vi} + +\beginindentedkeys + +In VIP some keys behave rather differently from Vi. +The table below lists such keys, and you can get the effect of typing +these keys by typing the corresponding keys in the VIP column. + +\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr +\threecol{}{{\bf Vi}}{{\bf VIP}} +\threecol{forward character}{SPC}{l} +\threecol{backward character}{C-h}{h} +\threecol{next line at first non-white}{RET}{+} +\threecol{delete previous character}{X}{DEL} +\threecol{get information on file}{C-g}{g} +\threecol{substitute characters}{s}{x i} +\threecol{substitute line}{S}{c c} +\threecol{change to end of line}{C {\rm or} R}{c \$} +} + +(Strictly speaking, \kbd{C} and \kbd{R} behave slightly differently in Vi.) + +\section{Customization} + +By default, search is case sensitive. +You can change this by including the following line in your \kbd{.vip} file. + +\hskip 5ex +\kbd{(setq vip-case-fold-search t)} + +\beginindentedkeys + +\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr +\twocol{{\bf variable}}{{\bf default value}} +\twocol{vip-search-wrap-around}{t} +\twocol{vip-case-fold-search}{nil} +\twocol{vip-re-search}{nil} +\twocol{vip-re-replace}{nil} +\twocol{vip-re-query-replace}{nil} +\twocol{vip-open-with-indent}{nil} +\twocol{vip-help-in-insert-mode}{nil} +\twocol{vip-shift-width}{8} +\twocol{vip-tags-file-name}{"TAGS"} +} + +%\subsection{Customizing Key Bindings} + +Include (some of) following lines in your \kbd{.vip} file +to restore Vi key bindings. + +\beginexample +(define-key vip-mode-map "\\C-g" 'vip-info-on-file) +(define-key vip-mode-map "\\C-h" 'vip-backward-char) +(define-key vip-mode-map "\\C-m" 'vip-next-line-at-bol) +(define-key vip-mode-map " " 'vip-forward-char) +(define-key vip-mode-map "g" 'vip-keyboard-quit) +(define-key vip-mode-map "s" 'vip-substitute) +(define-key vip-mode-map "C" 'vip-change-to-eol) +(define-key vip-mode-map "R" 'vip-change-to-eol) +(define-key vip-mode-map "S" 'vip-substitute-line) +(define-key vip-mode-map "X" 'vip-delete-backward-char) +\endexample + +\newcolumn + +\title{Ex Commands in VIP} + +In vi mode, an Ex command is entered by typing: + +\hskip 5ex +\kbd{:\ {\sl ex-command} RET} + +\section{Ex Addresses} + +\paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=2pt&#\tabskip=5pt plus 1 fil&#\cr +\twocolkey{current line}{.}{next line with {\sl pat}}{/ {\sl pat} /} +\twocolkey{line {\it n}}{{\it n}}{previous line with {\sl pat}}{?\ {\sl pat} ?} +\twocolkey{last line}{\$}{{\it n\/} line before {\it a}}{{\it a} - {\it n}} +\twocolkey{next line}{+}{{\it a\/} through {\it b}}{{\it a\/} , {\it b}} +\twocolkey{previous line}{-}{line marked with {\it x}}{' {\it x}} +\twocolkey{entire buffer}{\%}{previous context}{' '} +} + +Addresses can be specified in front of a command. +For example, + +\hskip 5ex +\kbd{:.,.+10m\$} + +moves 11 lines below current line to the end of buffer. + +\section{Ex Commands} + +\endindentedkeys + +\key{mark lines matching {\sl pat} and execute {\sl cmds} on these lines}{:g /{\sl pat}/ {\sl cmds}} + +\key{mark lines {\it not\/} matching {\sl pat} and execute {\sl cmds} on these lines}{:v /{\sl pat}/ {\sl cmds}} + + +\key{{\bf move} specified lines after {\sl addr}}{:m {\sl addr}} +\key{{\bf copy} specified lines after {\sl addr}}{:co\rm\ (or \kbd{:t})\ \sl addr} +\key{{\bf delete} specified lines [into register {\it x\/}]}{:d {\rm [{\it x\/}]}} +\key{{\bf yank} specified lines [into register {\it x\/}]}{:y {\rm [{\it x\/}]}} +\key{{\bf put} back text [from register {\it x\/}]}{:pu {\rm [{\it x\/}]}} + +\key{{\bf substitute} {\sl repl} for first string on line matching {\sl pat}}{:s /{\sl pat}/{\sl repl}/} + +\key{repeat last substitution}{:\&} +\key{repeat previous substitute with previous search pattern as {\sl pat}}{:\~{}} + +\key{{\bf read} in a file}{:r {\sl file}} +\key{{\bf read} in the output of a shell command}{:r!\ {\sl command}} +\key{write out specified lines into {\sl file}}{:w {\sl file}} +\key{write out specified lines at the end of {\sl file}}{:w>> {\sl file}} +\key{write out and then quit}{:wq {\sl file}} + +\key{define a macro {\it x} that expands to {\sl cmd}}{:map {\it x} {\sl cmd}} +\key{remove macro expansion associated with {\it x}}{:unma {\it x}} + +\key{print line number}{:=} +\key{print {\bf version} number of VIP}{:ve} + +\key{shift specified lines to the right}{:>} +\key{shift specified lines to the left}{:<} + +\key{{\bf join} lines}{:j} +\key{mark specified line to register {\it x}}{:k {\it x}} +\key{{\bf set} a variable's value}{:se} +\key{run a sub{\bf shell} in a window}{:sh} +\key{execute shell command {\sl command}}{:!\ {\sl command}} +\key{find first definition of {\bf tag} {\sl tag}}{:ta {\sl tag}} + + +\copyrightnotice + +\bye + +% Local variables: +% compile-command: "tex refcard" +% End: + +% arch-tag: 342a9548-4de4-499d-b864-74fb426b6729