nz@wucs.UUCP (Neal Ziring) (08/24/85)
Below is the troff source for a GNU Emacs quick reference card. It prints best on an Imagen laser printer driven by ditroff, but should work ok on any type-setter-like device (maybe with some point-size or vertical-spacing changes). The source below is for the standard GNU keymap. Everybody customizes the keymap, so you may want to changes some of the command key names. To format the document, run this command sequence: tbl card.tr | ditroff -Pyour-sites-device This should produce six pages, each containing one narrow column of text. You can then post it as a wall chart, or paste it together and photo-reduce it onto an 8-1/2 by 11 sheet of paper. We use 5 inches per column, and a reduction of to 72% of original size. Gemacs users here at Wash. U. like having a handy reference card, even bigger than the one Vi fans use. ======== ...nz (ECL - we're here to provide superior computing) Washington University Engineering Computer Laboratory "Now we'll see some proper action..." old style: ... ihnp4!wucs!nz new style: nz@wucs.UUCP ----------------- clip here ------------------- .ds CH .ds CF .\" define help character .ds HC C-h .nr PS 9 .ps 9 .nr VS 11 .vs 11 .nr HM .50i .nr FM .25i .nr PO 0.6i .po 0.6i .nr LL 4i .ll 4i .de hD 'sp |0.5i .. .de fO 'bp .. .wh 0 hD .wh -0.2i fO .de nc .bp .. .de LG .ps +2 .. .de SM .ps -2 .. .de B .ft B .. .de I .ft I .. .de R .ft R .. .de h .LG .B \\$1 .R .SM .. .fi .\" side 1 .ne 0.2i .LG .LG .B .ce GNU Emacs Quick Reference .sp 0.5 .I .SM .ce (version 16.56) .sp 1.25 .R .SM Emacs (\fBE\fR-maks) \- full-screen real-time text editor .sp 1.25 .h "Entering and Leaving GNU Emacs" .sp 0.5 .in +2n \fRgemacs\fI file ... .br \fRgemacs\fI -l Elisp-file file ... .br \fRgemacs\fI -batch -l Elisp-file\fR .sp 0.25 ^Z Stop Emacs for later resumption .sp 0.25 ^X ^C Quit Emacs and return to shell .R .in -2n .sp 1 .TS lp+2fB s a l. GNU EMACS CONCEPTS .sp 0.5 Insertion T{ .na .ll 2.8i You are always in insert mode in Emacs. Ordinary text is inserted as soon as it is typed. T} .sp 0.5 Commands T{ .na .ll 2.8i Emacs commands are invoked by typing sequences of control characters. Control chars are written \fIC-x\fP, escape sequences \fIESC x\fP. T} .sp 0.5 Buffer T{ .na .ll 2.8i A block of text that you may examine and modify in the editor. T} .sp 0.5 Window T{ .na .ll 2.8i A display area on the screen. A buffer is displayed for editing in one or more windows. T} .sp 0.5 File T{ .na .ll 2.8i A block of text that can be read into a buffer or written from a buffer. T} .sp 0.5 Kills T{ .na .ll 2.8i Text that is \fIkilled\fP is placed in a special kill-buffer. Killed text can be retrieved with a \fIyank\fP. The most recent sixteen kills are kept in the \fIkill-ring\fP. T} .sp 0.5 Dot T{ .na .ll 2.8i The current cursor location in each buffer is called the \fIdot\fP or the \fIpoint\fP. T} .sp 0.5 Mark T{ .na .ll 2.8i The \fImark\fP is an invisible pointer in each buffer. It is set by many commands to the location where they were performed. T} .sp 0.5 Region T{ .na .ll 2.8i Text between the \fIdot\fR and the \fImark\fR is called the \fIregion\fP. T} .sp 0.5 Registers T{ .na .ll 2.8i Emacs supports a set of 26 general registers, named \fIa\fR through \fIz\fR. Registers may hold commands, locations, numbers, or text. T} .sp 0.5 Modes T{ .na .ll 2.8i Every buffer has a mode. \fIMajor\fP modes determine the editor's language-sensitive behavior and define special mode commands. \fIMinor\fP modes add special features without adding new commands. T} .sp 0.25 .TE .sp 1 .TS expand; lp+2fB s a l l s afB l. GETTING HELP .sp 0.25 \*(HC Invoke the self-documenter .sp 0.25 T{ .na .ll 3.9i .in +1n The self-documenter function will prompt for a help command. Most help commands ask for a name or character, which they will then describe for you. Useful help commands are listed below. .in -1n .ad T} .sp 0.25 a document functions apropos a word b list all global key bindings c describe a key sequence briefly f describe a function k describe a key sequence completely l show last 100 characters typed m tell what this major mode is ? show list of help commands i invoke Info documentation reader v describe a variable .TE .bp .ne 0.3i .\" side 1 column 2 .TS lp+2fB s a l a l l s. SPECIFYING YOUR TERMINAL TYPE .sp 0.25 setenv TERM \fItype\fR in \fIcsh\fR TERM=\fItype\fR ; export TERM in \fIsh\fR .sp 0.25 \ see also \fItset(1)\fR and \fIenviron(7)\fR .TE .sp 1 .TS lp+2fB s s s ae le le le. SOME TERMINALS GNU EMACS CAN USE .sp 0.25 4014 concept100 graphon132 vt220 925 ergo201 h1500 vt52 act5 ergo301 hp2626 wumime adm3a ergox mime2a wy50 adm5 gigi visual550 xmime bbnbg graphon vt100 .TE .sp 1 .TS lp+2fB s a l. VARIABLES AND OPTIONS .sp 0.25 \*(HC\ v T{ .na .ll 2.5i Describe a variable. The variable's value and description will be displayed. .ad T} .sp 0.25 ESC x set-var T{ .na .ll 2.5i Set a variable to a value, you will be prompted for the variable name and new value. .ad T} .sp 0.25 ESC x edit-opt T{ .na .ll 2.5i Open a buffer to view and set options interactively. T} .TE .sp 0.75 .ti 5n .fi GNU Emacs maintains a large number of variables that define many of its operating characteristics. You can examine and modify these variables using the commands given above. .sp 1 .TS expand; lp+2fB s s c c c c c c a l l. USEFUL VARIABLES .sp 0.25 Variable Initial Description Name Value .sp 0.25 auto-save-default t auto-save files auto-save-interval 300 chars between saves blink-matching-par t show paren matches c-indent-level 2 C statement indent c-label-offset -2 relative label indent case-fold-search t searchs ignore case case-replace t replace preserves case comment-column 32 column to start comments comment-start None string to start comments fill-column t fill text to column indent-tabs mode t indent can use tabs scroll-step 0 scroll by when moving tab-width 8 size of tab stop .TE .sp 1 .TS expand; lp+2fB s l s l s l s ae le. REGULAR EXPRESSIONS .sp 0.25 .in +2n Some Emacs commands use regular expressions for string pattern matching. Common commands that use this are the following. .in -2n .sp 0.5 isearch-backward-regexp replace-regexp isearch-forward-regexp query-replace-regexp command-apropos .sp 0.75 .TE .TS expand; l s l s ap+2fI l afI l. .in +2n The following primatives are recognized by the Emacs pattern matcher. .in -2n .sp 0.25 \ ^ beginning of line \ . any character \ $ end of line [str] any char in \fIstr\fR [^str] ...not in \fIstr\fR [X-Y] ...in range \fIX\fR to \fIY\fR \ * zero or more of preceding regexp \ + one or more of preceding regexp \e| alternation of two patterns \e(\ \e) parentheses for expression grouping .TE .bp .\" side 1 column 3 \" .ne 0.2i .TS expand; lp+2fB s a l. THE DISPLAY .sp 0.25 Text Area T{ .na .ll 2.8i A view onto a text buffer. .br Each window has its own text area. Your display always has at least one text area on it. T} .sp 0.25 Mode Line T{ .na .ll 2.8i Status line displayed at the bottom of a window. .br The mode line displays the current buffer name, major and minor editing modes, and current location in the file. The variable \fImode-line-format\fP defines the contents and layout of the mode line. T} .sp 0.25 Echo Area T{ .na .ll 2.8i A one-line area at the bottom of the screen. .br Error messages and progress messages are displayed in the echo area. This area is also called the \fImini-buffer\fP, because Emacs command prompts and your responses are typed there. .ad T} .TE .sp 1 .TS expand; lp+2fB s a l l s a l. QUERY REPLACE .sp 0.25 ESC % Invoke interactive replacement .sp 0.5 T{ .na .in +2n .ll 3.5i Query-replace will prompt you for a string and another string with which to replace it. Replacement proceeds from the current location (dot) to the end of the buffer. The following query responses are recognized. .in -2n .ad T} .sp 0.5 space replace this match DEL skip to next match ESC exit query replace \ . replace this match and exit C-R enter recursive edit C-W delete match and recursive edit \ ! replace all remaining matches \ ^ move back to previous match .TE .sp 1 .TS expand; lp+2fB l l s. WRITING NEW COMMANDS .sp 0.25 T{ .na .in +2n .ll 3.5i New commands can be written by performing them as keyboard macros, then saving the keyboard macros in a file as Elisp code. You may also write Elisp code directly (using \fIemacs-lisp\fR mode). The functions below are useful for writing and saving your own new commands. They are invoked with\ \ ESC x \fIcommand\fP. .in -2n .ad T} .TE .sp 0.5 .TS expand; a r. append-kbd-macro append macro to Elisp file end-kbd-macro finish macro definition kbd-macro-query wait for user response in a macro name-last-kbd-macro give defined macro a name start-kbd-macro begin macro definition write-kbd-macro write named macro to Elisp file .TE .sp 1 .TS expand; lp+2fB s l s a r. RE-DEFINING COMMAND KEYS .sp 0.25 T{ .in +2n .ll 3.5i Command keys may be re-defined globally, or just for the current buffer. The following functions are useful for re-defining command keys. These commands may be invoked with ESC x \fIcommand\fP. T} .sp 0.5 describe-key tell what a key does global-set-key define \fIkey\fP to execute \fIfunction\fP global-unset-key undefine \fIkey\fP in all buffers local-set-key define \fIkey\fP as \fIfunction\fP in this buffer local-unset-key undefine \fIkey\fP in this buffer .sp 0.25 define-key general key definition command make-sparse-keymap create a new, empty, key map use-local-map use a new local keymap for this buffer .TE .bp .\" side 2 column 1 .ne 0.2i .LG .LG .B .ce GNU Emacs Command Reference .sp 0.5 .I .SM .ce (version 16.56) .R .SM .sp 1.25 .TS expand; lp+2fB s a l. CONTROL SEQUENCES .sp 0.25 C-\fIx\fR control char hold CTRL and type \fIx\fR .sp 0.25 ESC \fIx\fR meta char type ESC then type \fIx\fR .sp 0.25 ESC C-\fIx\fR control-meta char type ESC, then type C-\fIx\fR .sp 0.25 C-x \fIx\fR ctrl-x char type C-x then type \fIx\fR. .T& lp+2fB s a l. .sp 1 SIMPLE MOTION .sp 0.25 C-a beginning-of-line C-b backward-char C-e end-of-line C-f forward-char Tab tab-to-tab-stop C-j newline-and-indent Return newline C-n next-line C-o open-line C-p previous-line DEL delete-backward-char ESC # goto-line ESC < beginning-of-buffer ESC > end-of-buffer .T& lp+2fB s a l. .sp 1 SCROLLING .sp 0.25 C-v scroll-up C-x < scroll-left C-x > scroll-right ESC C-v scroll-other-window ESC v scroll-down .T& lp+2fB s a l. .sp 1 TEXT MOTION .sp 0.25 C-x [ backward-page C-x ] forward-page ESC [ backward-paragraph ESC ] forward-paragraph ESC a backward-sentence ESC b backward-word ESC e forward-sentence ESC f forward-word .T& lp+2fB s a l. .sp 1 TRANSPOSITION .sp 0.25 C-t transpose-chars C-x C-t transpose-lines ESC C-t transpose-sexps ESC t transpose-words .T& lp+2fB s a l. .sp 1 QUERIES AND FIXES .sp 0.25 C-g Cancel immediately C-l recenter (and fix screen) \*(HC help-command C-q quoted-insert C-x = what-cursor-position C-x l count-lines-page C-x u advertised-undo C-] abort-recursive-edit ESC = count-lines-region .\" side 2 column 2 .TE .bp .TS expand; lp+2fB s a l. .sp 1 DELETES, KILLS, AND YANKS .sp 0.25 C-d delete-char C-k kill-line C-w kill-region C-y yank DEL delete-backward-char C-x C-o delete-blank-lines C-x DEL backward-kill-sentence ESC C-w append-next-kill ESC \e delete-horizontal-space ESC ^ delete-indentation ESC d kill-word ESC k kill-sentence ESC w copy-region-as-kill ESC y yank-pop ESC z zap-to-char ESC DEL backward-kill-word .T& lp+2fB s a l. .sp 1 BUFFERS .sp 0.25 C-x C-b list-buffers C-x C-f find-file C-x C-s save-buffer C-x a append-to-buffer C-x b switch-to-buffer C-x h mark-whole-buffer C-x k kill-buffer C-x n narrow-to-region C-x s save-some-buffers C-x w widen C-x 4 b pop-to-buffer ESC ~ not-modified .T& lp+2fB s a l. .sp 1 WINDOWS .sp 0.25 C-x 0 delete-window C-x 1 delete-other-windows C-x 2 split-window-vertically C-x 5 split-window-horizontally C-x ^ enlarge-window C-x o other-window ESC C-v scroll-other-window C-x 4 C-f find-file-other-window .T& lp+2fB s a l. .sp 1e FILES .sp 0.25 C-x C-f find-file C-x C-r find-file-read-only C-x C-v find-alternate-file C-x C-w write-file C-x i insert-file .T& lp+2fB s a l. .sp 1 SEARCHING .sp 0.25 C-s isearch-forward C-r isearch-backward ESC % query-replace ESC h isearch-forward-regexp ESC r isearch-backward-regexp .T& lp+2fB s a l. .sp 1 LISP COMMANDS .sp 0.25 ESC C-a beginning-of-defun ESC C-b backward-sexp ESC C-e end-of-defun ESC C-f forward-sexp ESC C-h mark-defun ESC C-k kill-sexp ESC ( insert-parentheses ESC ) move-past-close-and-reindent .TE .bp .TS expand; lp+2fB s a l. .sp 1 CASE CHANGES .sp 0.25 C-x C-l downcase-region C-x C-u upcase-region ESC c capitalize-word ESC l downcase-word ESC u upcase-word .T& lp+2fB s a l. .sp 0.5 FILLING AND CENTERING .sp 0.25 C-x f set-fill-column C-x . set-fill-prefix ESC q fill-paragraph ESC s center-line .T& lp+2fB s a l. .sp 1 MARKS AND REGISTERS .sp 0.25 C-@ set-mark-command C-x C-p mark-page C-x C-x exchange-dot-and-mark C-x / dot-to-register C-x g insert-register C-x h mark-whole-buffer C-x j register-to-dot C-x r copy-rectangle-to-register C-x x copy-to-register ESC C-@ mark-sexp ESC C-h mark-defun ESC @ mark-word .T& lp+2fB s a l. .sp 1 MACROS AND REPETITION .sp 0.25 C-u Universal-argument C-x ( start-kbd-macro C-x ) end-kbd-macro C-x e execute-kbd-macro C-x q query-kbd-macro ESC - negative-argument ESC 0 .. ESC 9 digit-argument .T& lp+2fB s a l. .sp 1 FUNCTION INVOKATION .sp 0.25 C-x C-e eval-last-sexp C-x ESC repeat-complex-command ESC ESC eval-expression ESC x execute-extended-command .T& lp+2fB s a l. .sp 1 SHELLS AND SUBSYSTEMS .sp 0.25 C-x d dired (edit directory) C-x m mail ESC ! shell-command ESC | shell-command-on-region ESC $ spell-word .T& lp+2fB s a l. .sp 1 EXIT .sp 0.25 C-c exit-recursive-edit C-x C-c save-buffers-kill-emacs C-x C-z suspend-emacs ESC C-c exit-recursive-edit .TE .sp 1 .TS expand; lp+2fB s l s a l. Some Editing Modes .sp 0.25 \ (invoke with ESC x \fImode-name\fR) .sp 0.25 abbrev-mode auto-fill-mode c-mode text-mode fundamental-mode lisp-interaction-mode lisp-mode nroff-mode outline-mode overwrite-mode picture-mode scheme-mode .TE