From 35501638737c7fbfef8587747c12e0bd41c90b35 Mon Sep 17 00:00:00 2001 From: CSRG Date: Wed, 9 Jan 1991 00:25:55 -0800 Subject: [PATCH] BSD 4_4_Lite1 development Work on file usr/src/contrib/emacs-18.57/etc/refcard.tex Synthesized-from: CSRG/cd2/4.4BSD-Lite1 --- usr/src/contrib/emacs-18.57/etc/refcard.tex | 627 ++++++++++++++++++++ 1 file changed, 627 insertions(+) create mode 100644 usr/src/contrib/emacs-18.57/etc/refcard.tex diff --git a/usr/src/contrib/emacs-18.57/etc/refcard.tex b/usr/src/contrib/emacs-18.57/etc/refcard.tex new file mode 100644 index 0000000000..78f5cedd42 --- /dev/null +++ b/usr/src/contrib/emacs-18.57/etc/refcard.tex @@ -0,0 +1,627 @@ +% Reference Card for 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 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 1, 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, 675 Mass Ave, Cambridge, MA 02139, 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: +% Stephen Gildea +% UUCP: mit-erl!gildea +% Internet: gildea@erl.mit.edu +% +% Thanks to Paul Rubin, Bob Chassell, Len Tower, and Richard Mlynarik +% for their many good ideas. + +% If there were room, it would be nice to see sections on +% Abbrevs, Rectangles, and Dired. + +\def\versionnumber{1.9} +\def\year{1987} +\def\version{March \year\ 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 +\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} +\centerline{designed by Stephen Gildea, \version} +\centerline{for 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., 675 Massachusetts Ave, Cambridge MA 02139. + +\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. +\if 1\ncolumns + \hsize 4in + \vsize 10in + \voffset -.7in + \font\titlefont=\fontname\tenbf \scaledmag3 + \font\headingfont=\fontname\tenbf \scaledmag2 + \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 + \hoffset -.75in + \voffset -.745in + \font\titlefont=cmbx10 \scaledmag2 + \font\headingfont=cmbx10 \scaledmag1 + \font\smallfont=cmr6 + \font\smallsy=cmsy6 + \font\eightrm=cmr8 + \font\eightbf=cmbx8 + \font\eightit=cmti8 + \font\eighttt=cmtt8 + \font\eightsy=cmsy8 + \textfont0=\eightrm + \textfont2=\eightsy + \def\rm{\eightrm} + \def\bf{\eightbf} + \def\it{\eightit} + \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 + \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} + +\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\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad + &\kbd{#3}\quad\cr} + +%**end of header + + +\title{GNU Emacs Reference Card} + +\centerline{(for version 18)} + +\section{Starting Emacs} + +To enter Emacs, just type its name: \kbd{emacs} + +To read in a file to edit, see Files, below. + +\section{Leaving Emacs} + +\key{suspend Emacs (the usual way of leaving it)}{C-z} +\key{exit Emacs permanently}{C-x C-c} + +\section{Files} + +\key{{\bf read} a file into Emacs}{C-x C-f} +\key{{\bf save} a file back to disk}{C-x C-s} +\key{{\bf insert} contents of another file into this buffer}{C-x i} +\key{replace this file with the file you really want}{C-x C-v} +\key{write buffer to a specified file}{C-x C-w} +\key{run Dired, the directory editor}{C-x d} + +\section{Getting Help} + +The Help system is simple. Type \kbd{C-h} and follow the directions. +If you are a first-time user, type \kbd{C-h t} for a {\bf tutorial}. +(This card assumes you know the tutorial.) + +\key{get rid of Help window}{C-x 1} +\key{scroll Help window}{ESC C-v} + +\key{apropos: show commands matching a string}{C-h a} +\key{show the function a key runs}{C-h c} +\key{describe a function}{C-h f} +\key{get mode-specific information}{C-h m} + +\section{Error Recovery} + +\key{{\bf abort} partially typed or executing command}{C-g} +\metax{{\bf recover} a file lost by a system crash}{M-x recover-file} +\key{{\bf undo} an unwanted change}{C-x u {\rm or} C-_} +\metax{restore a buffer to its original contents}{M-x revert-buffer} +\key{redraw garbaged screen}{C-l} + +\section{Incremental Search} + +\key{search forward}{C-s} +\key{search backward}{C-r} +\key{regular expression search}{C-M-s} + +Use \kbd{C-s} or \kbd{C-r} again to repeat the search in either direction. + +\key{exit incremental search}{ESC} +\key{undo effect of last character}{DEL} +\key{abort current search}{C-g} + +If Emacs is still searching, \kbd{C-g} will cancel the +part of the search not done, otherwise it aborts the entire search. + +\shortcopyrightnotice + +\section{Motion} + +Cursor motion: + +\beginindentedkeys + +\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr +\threecol{{\bf entity to move over}}{{\bf backward}}{{\bf forward}} +\threecol{character}{C-b}{C-f} +\threecol{word}{M-b}{M-f} +\threecol{line}{C-p}{C-n} +\threecol{go to line beginning (or end)}{C-a}{C-e} +\threecol{sentence}{M-a}{M-e} +\threecol{paragraph}{M-[}{M-]} +\threecol{page}{C-x [}{C-x ]} +\threecol{sexp}{C-M-b}{C-M-f} +\threecol{function}{C-M-a}{C-M-e} +\threecol{go to buffer beginning (or end)}{M-<}{M->} +} +Screen motion: + +\key{scroll to next screen}{C-v} +\key{scroll to previous screen}{M-v} +\key{scroll left}{C-x <} +\key{scroll right}{C-x >} + +\endindentedkeys + +\section{Killing and Deleting} + +\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr +\threecol{{\bf entity to kill}}{{\bf backward}}{{\bf forward}} +\threecol{character (delete, not kill)}{DEL}{C-d} +\threecol{word}{M-DEL}{M-d} +\threecol{line (to end of)}{M-0 C-k}{C-k} +\threecol{sentence}{C-x DEL}{M-k} +\threecol{sexp}{M-- C-M-k}{C-M-k} +} + +\key{kill {\bf region}}{C-w} +\key{kill to next occurrence of {\it char}}{M-z {\it char}} + +\key{yank back last thing killed}{C-y} +\key{replace last yank with previous kill}{M-y} + +\section{Marking} + +\key{set mark here}{C-@ {\rm or} C-SPC} +\key{exchange point and mark}{C-x C-x} + +\key{set mark {\it arg\/} {\bf words} away}{M-@} +\key{mark {\bf paragraph}}{M-h} +\key{mark {\bf page}}{C-x C-p} +\key{mark {\bf sexp}}{C-M-@} +\key{mark {\bf function}}{C-M-h} +\key{mark entire {\bf buffer}}{C-x h} + +\section{Query Replace} + +\key{interactively replace a text string}{M-\%} +\metax{using regular expressions}{M-x query-replace-regexp} + +Valid responses in query-replace mode are + +\key{{\bf replace} this one, go on to next}{SPC} +\key{replace this one, don't move}{,} +\key{{\bf skip} to next without replacing}{DEL} +\key{replace all remaining matches}{!} +\key{{\bf back up} to the previous match}{^} +\key{{\bf exit} query-replace}{ESC} +\key{enter recursive edit (\kbd{C-M-c} to exit)}{C-r} + +\section{Multiple Windows} + +\key{delete all other windows}{C-x 1} +\key{delete this window}{C-x 0} +\key{split window in 2 vertically}{C-x 2} +\key{split window in 2 horizontally}{C-x 5} + +\key{scroll other window}{C-M-v} +\key{switch cursor to another window}{C-x o} + +\metax{shrink window shorter}{M-x shrink-window} +\key{grow window taller}{C-x ^} +\key{shrink window narrower}{C-x \{} +\key{grow window wider}{C-x \}} + +\key{select a buffer in other window}{C-x 4 b} +\key{find file in other window}{C-x 4 f} +\key{compose mail in other window}{C-x 4 m} +\key{run Dired in other window}{C-x 4 d} +\key{find tag in other window}{C-x 4 .} + +\section{Formatting} + +\key{indent current {\bf line} (mode-dependent)}{TAB} +\key{indent {\bf region} (mode-dependent)}{C-M-\\} +\key{indent {\bf sexp} (mode-dependent)}{C-M-q} +\key{indent region rigidly {\it arg\/} columns}{C-x TAB} + +\key{insert newline after point}{C-o} +\key{move rest of line vertically down}{C-M-o} +\key{delete blank lines around point}{C-x C-o} +\key{delete all whitespace around point}{M-\\} +\key{put exactly one space at point}{M-SPC} + +\key{fill {\bf paragraph}}{M-q} +\key{fill {\bf region}}{M-g} +\key{set fill column}{C-x f} +\key{set prefix each line starts with}{C-x .} + +\section{Case Change} + +\key{uppercase word}{M-u} +\key{lowercase word}{M-l} +\key{capitalize word}{M-c} + +\key{uppercase region}{C-x C-u} +\key{lowercase region}{C-x C-l} +\metax{capitalize region}{M-x capitalize-region} + +\section{The Minibuffer} + +The following keys are defined in the minibuffer. + +\key{complete as much as possible}{TAB} +\key{complete up to one word}{SPC} +\key{complete and execute}{RET} +\key{show possible completions}{?} +\key{abort command}{C-g} + +Type \kbd{C-x ESC} to edit and repeat the last command that used the +minibuffer. The following keys are then defined. + +\key{previous minibuffer command}{M-p} +\key{next minibuffer command}{M-n} + +\newcolumn +\title{GNU Emacs Reference Card} + +\section{Buffers} + +\key{select another buffer}{C-x b} +\key{list all buffers}{C-x C-b} +\key{kill a buffer}{C-x k} + +\section{Transposing} + +\key{transpose {\bf characters}}{C-t} +\key{transpose {\bf words}}{M-t} +\key{transpose {\bf lines}}{C-x C-t} +\key{transpose {\bf sexps}}{C-M-t} + +\section{Spelling Check} + +\key{check spelling of current word}{M-\$} +\metax{check spelling of all words in region}{M-x spell-region} +\metax{check spelling of entire buffer}{M-x spell-buffer} + +\section{Tags} + +\key{find tag}{M-.} +\key{find next occurrence of tag}{C-u M-.} +\metax{specify a new tags file}{M-x visit-tags-table} + +\metax{regexp search on all files in tags table}{M-x tags-search} +\metax{query replace on all the files}{M-x tags-query-replace} +\key{continue last tags search or query-replace}{M-,} + +\section{Shells} + +\key{execute a shell command}{M-!} +\key{run a shell command on the region}{M-|} +\key{filter region through a shell command}{C-u M-|} +\metax{start a shell in window \kbd{*shell*}}{M-x shell} + +\section{Rmail} + +\key{scroll forward}{SPC} +\key{scroll reverse}{DEL} +\key{beginning of message}{. {\rm (dot)}} +\key{{\bf next} non-deleted message}{n} +\key{{\bf previous} non-deleted message}{p} +\key{next message}{M-n} +\key{previous message}{M-p} +\key{{\bf delete} message}{d} +\key{delete message and back up}{C-d} +\key{undelete message}{u} +\key{{\bf reply} to message}{r} +\key{forward message to someone}{f} +\key{send mail}{m} +\key{{\bf get} newly arrived mail}{g} +\key{{\bf quit} Rmail}{q} +\key{output message to another Rmail file}{o} +\key{output message in Unix-mail style}{C-o} +\key{show summary of headers}{h} + +\section{Regular Expressions} + +The following have special meaning inside a regular expression. + +\key{any single character}{. {\rm(dot)}} +\key{zero or more repeats}{*} +\key{one or more repeats}{+} +\key{zero or one repeat}{?} +\key{any character in set}{[ {\rm$\ldots$} ]} +\key{any character not in set}{[^ {\rm$\ldots$} ]} +\key{beginning of line}{^} +\key{end of line}{\$} +\key{quote a special character {\it c\/}}{\\{\it c}} +\key{alternative (``or'')}{\\|} +\key{grouping}{\\( {\rm$\ldots$} \\)} +\key{{\it n\/}th group}{\\{\it n}} +\key{beginning of buffer}{\\`} +\key{end of buffer}{\\'} +\key{word break}{\\b} +\key{not beginning or end of word}{\\B} +\key{beginning of word}{\\<} +\key{end of word}{\\>} +\key{any word-syntax character}{\\w} +\key{any non-word-syntax character}{\\W} +\key{character with syntax {\it c}}{\\s{\it c}} +\key{character with syntax not {\it c}}{\\S{\it c}} + +\section{Registers} + +\key{copy region to register}{C-x x} +\key{insert register contents}{C-x g} + +\key{save point in register}{C-x /} +\key{move point to saved location}{C-x j} + +\section{Info} + +\key{enter the Info documentation reader}{C-h i} +\beginindentedkeys + +Moving within a node: + +\key{scroll forward}{SPC} +\key{scroll reverse}{DEL} +\key{beginning of node}{. {\rm (dot)}} + +Moving between nodes: + +\key{{\bf next} node}{n} +\key{{\bf previous} node}{p} +\key{move {\bf up}}{u} +\key{select menu item by name}{m} +\key{select {\it n\/}th menu item by number (1--5)}{{\it n}} +\key{follow cross reference (return with \kbd{l})}{f} +\key{return to last node you saw}{l} +\key{return to directory node}{d} +\key{go to any node by name}{g} + +Other: + +\key{run Info {\bf tutorial}}{h} +\key{list Info commands}{?} +\key{{\bf quit} Info}{q} +\key{search nodes for regexp}{s} + +\endindentedkeys + +\section{Keyboard Macros} + +\key{{\bf start} defining a keyboard macro}{C-x (} +\key{{\bf end} keyboard macro definition}{C-x )} +\key{{\bf execute} last-defined keyboard macro}{C-x e} +\key{append to last keyboard macro}{C-u C-x (} +\metax{name last keyboard macro}{M-x name-last-kbd-macro} +\metax{insert lisp definition in buffer}{M-x insert-kbd-macro} + +\section{Commands Dealing with Emacs Lisp} + +\key{eval {\bf sexp} before point}{C-x C-e} +\key{eval current {\bf defun}}{C-M-x} +\metax{eval {\bf region}}{M-x eval-region} +\metax{eval entire {\bf buffer}}{M-x eval-current-buffer} +\key{read and eval minibuffer}{M-ESC} +\key{re-execute last minibuffer command}{C-x ESC} +\metax{read and eval Emacs Lisp file}{M-x load-file} +\metax{load from standard system directory}{M-x load-library} + +\section{Simple Customization} + +% The intended audience here is the person who wants to make simple +% customizations and knows Lisp syntax. + +Here are some examples of binding global keys in Emacs Lisp. Note +that you cannot say \kbd{"\\M-\#"}; you must say \kbd{"\\e\#"}. + +\beginexample% +(global-set-key "\\C-cg" 'goto-line) +(global-set-key "\\e\\C-r" 'isearch-backward-regexp) +(global-set-key "\\e\#" 'query-replace-regexp) +\endexample + +An example of setting a variable in Emacs Lisp: + +\beginexample% +(setq backup-by-copying-when-linked t) +\endexample + +\section{Writing Commands} + +\beginexample% +(defun \ (\) + "\" + (interactive "\