:userdoc. :prolog. :docprof style=refcard. :eprolog. :body. .* .* .* :h1.The (Nearly) Complete GNU Emacs Key Bindings (plus Epoch) .* :h2.Moving Around in Text :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-v :dd.Forward one screen :dt.a-v :dd.Back one screen :dt.c-l :dd.Clear and redisplay :dt.c-p :dd.Previous line :dt.c-n :dd.Next line :dt.c-b :dd.Backward one character :dt.c-f :dd.Forward one character :dt.a-b :dd.Backward one word :dt.a-f :dd.Forward one word :dt.c-a :dd.Beginning of line :dt.c-e :dd.End of line :dt.a-a :dd.Beginning of sentence :dt.a-e :dd.End of sentence :dt.a-< :dd.Beginning of file :dt.a-> :dd.End of file :dt. c-l :dd.Scroll to line :q.arg:eq. :dt.c-x < :dd.Scroll text left :dt.c-x > :dd.Scroll text right :dt.c-x &dollar. :dd.Show deeply indented lines :dt. c-x &dollar. :dd.Hide lines over :q.arg:eq. columns indented :edl. .* :h2.Deleting, Undo, and Yank :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-x u :dd.Undo :dt.c-_ :dd.Undo :dt. :dd.Delete char before cursor :dt. :dd.Delete char after cursor :dt.c-d :dd.Delete char after cursor :dt.a- :dd.Kill word before cursor :dt.a-d :dd.Kill word after cursor :dt.c-k :dd.Kill to end of line :dt.a-k :dd.Kill to end of sentence :dt.c-x :dd.Kill to beginning of sentence :dt.a-&bslash. :dd.Delete tabs and spaces around point :dt.a- :dd.Delete tabs and spaces, leave one space :dt.c-y :dd.Yank back from kill buffer :dt.a-y :dd.Meta-yank (yank previous) :dt.c-a-w :dd.Append next kill to last killed text :dt.c-x c-o :dd.Delete all but one (of many) blank lines :edl. .* :h2.Files and Buffers :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-x c-f :dd.Find (read) a file :dt.c-x c-v :dd.Visit a different file :dt.c-x c-s :dd.Save a file :dt.c-x c-w :dd.Save buffer is specified file. :dt.a-x set-visited-file-name :dd.Change filename for this buffer :dt.c-x c-c :dd.Quit Emacs :dt.a-x auto-save-mode :dd.Toggle or set auto-save mode :dt.a-x recover-file RET RET; c-x c-s :dd.Recover auto-saved file :dt.c-x s :dd.Save some buffers :dt.c-x c-b :dd.List buffers :dt.c-x k :dd.Kill a buffer :dt.a-x kill-some-buffers :dd.Offer to kill each buffer :dt.a-&tilde. :dd.Forget that current buffer is changed. :dt.c-x 1 :dd.1 screen :dt.c-x 2 :dd.2 screens :dt.c-z :dd.Exit temporarily :dt.c-x c-d :dd.Short directory listing :dt.c-u c-x c-d :dd.Long directory listing :dt.c-x d or a-x dired :dd.Enter directory editor (dired) :dt.c-x 4 d :dd.Enter dired in another window :dt.a-x view-file :dd.View a file :dt.a-x insert-file :dd.Get file into current buffer :dt.a-x write-region :dd.Write region into file :dt.a-x delete-file :dd.Delete file :dt.a-x rename-file :dd.Rename file :dt.a-x add-name-to-file :dd.Add another name to this file (link) :dt.a-x copy-file :dd.Copy the file :dt.a-x make-symbolic-link :dd.Link two files :dt.a-x pwd :dd.Print pwd :dt.a-x cd :dd.Change pwd :edl. .* :h3.In Buffer List (c-x c-b) :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.d or k :dd.Delete (kill) the buffer :dt.s :dd.Request save of buffer :dt.&tilde. :dd.Mark buffer as unmodified :dt.x :dd.Perform saves and deletions :dt.1 :dd.Select buffer in full screen window :dt.2 :dd.Select buffer in other of 2 windows :dt.f :dd.Select buffer to edit (full screen) :dt.o :dd.Select buffer in other window :dt.m :dd.Flag for display when :q.q:eq. is used :dt.q :dd.Display all flagged buffers :edl. .* :h3.In Dired List (c-x d) :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.d :dd.Flag file for deletion :dt.u :dd.Remove deletion flag :dt.x :dd.Delete files flagged :dt.&numsign. :dd.Flag all auto-save files for deletion :dt.&tilde. :dd.Flag all backup files for deletion :dt.&dot. :dd.Flag excess backup files for deletion :dt.c :dd.Copies file :dt.f :dd.Visits (edit) file :dt.o :dd.Like f, but use another window :dt.r :dd.Rename file :dt.v :dd.View the file (read-only editing) :edl. .* :h3.In View File (a-x view-file) :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt. :dd.Move forward one window :dt. :dd.Move backward one window :dt.c-c :dd.Exit :edl. .* .* :h2.Epoch Additions :p. In the following commands, a :q.window:eq. refers to an X-window, not an Emacs window. :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-z 4 c-f :dd.Find (read) a file in another window. :dt.c-z 4 b :dd.Select a buffer in another window. :dt.c-z 0 :dd.Delete current window. :dt.c-z o :dd.Circulate through mapped windows in forward direction. :dt.c-z p :dd.Circulate through mapped windows in backward direction. :dt.c-z 2 :dd.Duplicate current window. :dt.c-z h :dd.Hide (unmap) current window. :dt.c-z r :dd.Raise current window. :dt.c-z l :dd.Lower current window. :dt.c-z m :dd.Raise minibuffer window. :dt.c-z i :dd.Iconify current window. :dt.c-z a :dd.Force update of title bar for current window. :edl. .* :h2.Help :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-h :dd.Help :dt.c-h a :dd.List all commands which contain :q.keyword:eq. :dt.c-h b :dd.Display all key bindings :dt.c-h c :dd.What does :q.cmd:eq. do? :dt.c-h f :dd.Help for function :dt.c-h i :dd.Run Info (for browsing docs) :dt.c-h k :dd.More extensive help :dt.c-h l :dd.Description of last 100 characters typed :dt.c-h m :dd.Docs for current major mode :dt.c-h n :dd.Docs for Emacs changes :dt.c-h t :dd.Tutorial :dt.c-h w :dd.Show keys which run :q.cmd:eq. :edl. .* :h2.Arguments and Re-executing :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-u :dd.Numeric argument to next command :dt.a- :dd.Numeric argument to next command :dt.c-g :dd.Bail-out :dt.c-x ESC :dd.Re-execute mini-buffer command :dl compact tsize=5. :dthd.Key :ddhd.Binding :dt.a-p :dd.Move to previous command :dt.a-n :dd.Move to next command :edl. :dt.a-x list-command-history :dd.Display entire command history :edl. .* :h2.Mark, Point, and Region :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c- or c-@ :dd.Set mark :dt.c-x c-x :dd.Swap mark and point :dt.a-@ :dd.Set mark after end of next word :dt.a-h :dd.Set region around current paragraph :dt.c-x h :dd.Set region around entire buffer :dt.c-x c-p :dd.Set region around current page :edl. .* :h3.Region Commands :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-u c- :dd.Move through locations in mark ring :dt.c-x c-u :dd.Uppercase text in region :dt.c-x c-l :dd.Lowercase text in region :dt.c-w :dd.Kill a region :dt.a-w :dd.Save region as killed, without killing :dt.c-x x :dd.Save region in register :q.arg:eq. :dt.a-g :dd.Fill each paragraph in region :dt.a-x fill-region-as-paragraph :dd.Fill entire region as one paragraph :dt.a-x print-region :dd.Print a region :dt.c-x TAB or c-a-&bslash. :dd.Indent a region :dt.c-x a :dd.Append region to buffer :dt.a-x prepend-to-buffer :dd.Prepend region to buffer :dt.a-x copy-to-buffer :dd.Copy region into buffer (deletes old contents) :dt.a-x insert-buffer :dd.Insert region into buffer at point :dt.a-x append-to-file :dd.Append region to file :edl. .* :h2.Rectangles :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x delete-rectangle :dd.Delete region and close :dt.a-x kill-rectangle :dd.Delete and put in kill buffer :dt.a-x yank-rectangle :dd.Yank last killed rectangle :dt.a-x open-rectangle :dd.Insert blank space to fill region :dt.a-x clear-rectangle :dd.Convert region to blanks :edl. .* :h2.Formatting :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-o :dd.Insert blank lines after cursor :dt.a-l :dd.Lowercase following word :dt.a-u :dd.Uppercase following word :dt.a-c :dd.Capitalize following word :dt.a-- a-l :dd.Convert last word to lower case :dt.a-- a-u :dd.Convert last word to upper case :dt.a-- a-c :dd.Convert last word to capitalized :dt.c-u c-x f :dd.Set margin to :q.arg:eq. :dt.a-q :dd.Re-fill paragraph :dt.a-x auto-fill-mode :dd.Toggle auto-fill :dt.c-u a-q :dd.Justify text :dt.a-s :dd.Center line :dt.c-t :dd.Transpose two characters :dt.a-t :dd.Transpose two words :dt.c-x c-t :dd.Transpose two lines :edl. .* :h2.Search and Replace :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-s :dd.Search :dt.c-r :dd.Reverse search :dt.c-s ESC RET :dd.Non-incremental search :dt.c-r ESC RET :dd.Non-incremental reverse search :dt.c-s ESC c-w RET :dd.Search for :q.words:eq., ignore punctuation :dt.c-r ESC c-w RET :dd.Search for :q.words:eq., ignore punctuation :dt.a-x replace-string RET RET :dd.Replace all occurences of :q.string:eq. :dt.a-% RET :dd.Query replace :q.string:eq. :dt.a-x query-replace RET :dd.Query replace :q.string:eq. :dt.a-x occur :dd.Show each line containing :q.regexp:eq. :dt.a-x list-matching-lines :dd.Show each line containing :q.regexp:eq. :dt.c-a-s :dd.Incremental search for :q.regexp:eq. :dt.a-x re-search-forward :dd.Non-incremental search for :q.regexp:eq. :dt.a-x re-search-backward :dd.Non-incremental search for :q.regexp:eq. :dt.a-x count-matches :dd.Print number of matches following point for :q.regexp:eq. :dt.a-x delete-non-matching-lines :dd.Delete each line following point that doesn't contain :q.regexp:eq. :dt.a-x delete-matching-lines :dd.Delete each line following point that contains :q.regexp:eq. :edl. .* :h3.Query Replace (a-x query-replace) :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt. :dd.Replace :q.string:eq. with :q.newstring:eq. :dt. :dd.Skip this occurence :dt. :dd.Exit without any more changes :dt.<.> :dd.Change this one and then exit :dt. :dd.Change all remaining :dt.<&caret.> :dd.Back-up one occurence :dt.c-h :dd.Show your options :edl. .* :h3.Regular Expressions :dl compact tsize=15. :dthd.Expression :ddhd.Meaning :dt.&dot. :dd.Any char except &bslash.n. :dt.&asterisk. :dd.Repeat preceeding as many times as possible. :q.fo*:eq. matches :q.f:eq. followed by any number of :q.o:eq.s. Zero :q.o:eq.s matches. :dt.&plus. :dd.Like &asterisk., but one occurence is necessary. :dt.&quest. :dd.Like &asterisk., but must match one or zero times. :dt.&lbrk.&ellip.&rbrk. :dd.Contains a character set. &lbrk.a&minus.z&rbrk. matches all lower-case letters. &lbrk.ad&rbrk. matches one :q.a:eq. or :q.d:eq.. &lbrk.ad&rbrk.&asterisk. matches any string of :q.a:eq.s and :q.d:eq.s. :dt.&lbrk.&caret.&ellip.&rbrk. :dd.Contains a complement character set. Matches any character not specified. :dt.&caret. :dd.Matches the empty string (only if at the beginning of a line). :dt.&dollar. :dd.Matches the empty string (only at the end of a line). :edl. .* :h2.Registers :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x view-register RET :dd.Display contents of register :q.arg:eq. :dt.c-x / :dd.Save location of point in register :q.arg:eq. :dt.c-x j :dd.Jump to location saved in :q.arg:eq. :dt.c-x x :dd.Save region in register :q.arg:eq. :dt.c-x g :dd.Insert text from register :q.arg:eq. :dt.c-x r :dd.Copy rectangle region to register :q.arg:eq. :dt.c-x g :dd.Insert rectangle from register :q.arg:eq. :edl. .* :h2.Spell Checking :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-&dollar. :dd.Check and correct spelling of word :dt.a-x spell-buffer :dd.Check spelling of words in buffer :dt.a-x spell-region :dd.Check spelling of words in region :dt.a-x spell-string :dd.Check spelling of specific word :edl. .* :h2.Windows :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-x 2 :dd.Split into two vertical windows :dt.c-x 5 :dd.Split into two horizontal windows :dt.c-x 0 :dd.Select other window :dt.c-a-v :dd.Scroll the next window :dt.a-x compare-windows :dd.Find next place where text doesn't match :dt.c-x 4 :dd.Perform command in another window :dt.c-x 0 :dd.Get rid of selected window :dt.c-x 1 :dd.Get rid of all windows except current :dt.c-x &caret. :dd.Make current window taller :dt.c-x &rbrace. :dd.Make current window wider :edl. .* :h2.Indentation :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.TAB :dd.Indent :q.appropriately:eq. (based on Mode) :dt.c-q TAB :dd.Insert tab character into buffer :dt. :dd.Return followed by Tab :dt.a-m :dd.Move to first non-blank character on line :dt.a-&caret. :dd.Merge two lines :dt.c-a-o :dd.Split line at point (new line is indented to match old line) :dt.c-a-&bslash. :dd.Indent several lines to same column :dt.c-x TAB :dd.Shift block of lines rigidly :dt.a-i :dd.Indent to next tab column :dt.a-x indent-relative :dd.Indent to under an indentation point in previous line :dt.a-x edit-tab-stops :dd.Set tab stop columns :edl. .* :h2.Text Modes :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x text-mode :dd.Enter text mode :dt.a-x indented-text-mode :dd.Enter indented text mode :dt.a-x nroff-mode :dd.Enter Nroff mode (filling stops at nroff commands) :dl compact tsize=5. :dthd.Key :ddhd.Binding :dt.a-n :dd.Move to beginning of next line that isn't an nroff command. :dt.a-p :dd.Move up to next non-command line. :dt.a-? :dd.Print number of text lines (not command lines) in the region. :edl. :dt.a-x plain-tex-mode :dd.Enter Tex mode. :dt.a-x latex-mode :dd.Enter LaTex mode. :edl. .* :h2.Outline Mode :p. Lines beginning with a star are considered heading lines. The number of stars determines the depth of the heading. Lines without a star are body lines. Body lines belong to the preceding heading line. :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x outline-mode :dd.Enter outline mode :dt.c-c c-n :dd.Move to next visible heading line :dt.c-c c-p :dd.Move to previous visible heading line :dt.c-c c-f :dd.Move to next visible heading line at same level :dt.c-c c-b :dd.Move to previous visible heading line at same level :dt.c-c c-u :dd.Move up to a lower-level visible heading line :dt.a-x hide-body :dd.Hide all body lines :dt.a-x show-all :dd.Show all lines :dt.c-c c-h :dd.Hide everything under this heading (excluding the heading) :dt.c-c c-s :dd.Show everything under this heading :dt.a-x hide-leaves :dd.Hide the body of this heading and all it's subheadings. :dt.a-x show-leaves :dd.Show all subheadings of this heading. :dt.c-c c-i :dd.Show immediate subheadings :dt.a-x hide-entry :dd.Hide this heading's body. :dt.a-x show-entry :dd.Show this heading's body. :edl. .* :h2.Program Mode :p. A :q.sexp:eq. is an expression, usually enclosed in some type of parenthesis, brackets, or braces. Lists are parenthetical groupings. :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.TAB :dd.Indent the :q.appropriate:eq. amount for this language. :dt.c-a-f :dd.Move forward over a sexp :dt.c-a-b :dd.Move backward over a sexp :dt.c-a-k :dd.Kill sexp forward :dt.c-a-u :dd.Move up and backward in list structure :dt.c-a-d :dd.Move down and forward in list structure :dt.c-a-n :dd.Move forward over a list :dt.c-a-p :dd.Move backward over a list :dt.c-a-t :dd.Transpose expressions :dt.c-a-&atsign. :dd.Put mark after following expression :dt.c-a-a :dd.Move to beginning of current or preceding function :dt.c-a-e :dd.Move to end of current or following function :dt.c-a-h :dd.Put region around current or following function :dt.c-a-q :dd.Re-indent all lines within one list :dt.c-u TAB :dd.Shift list rigidly so that first line is properly indented :dt.c-a-\ :dd.Re-indent all lines in the region :dt.a-; :dd.Insert or align comment :dt.c-x ; :dd.Set comment column :dt.c-u - c-x ; :dd.Kill comment on current line :dt.a- :dd.Return, followed by inserting and aligning comment :dt.a-( :dd.Put parenthesis around next sexp :dt.a-) :dd.Move past next close parenthesis and re-indent :dt.a-x add-change-log-entry :dd.Insert a change log entry (in ChangeLog file) :edl. :h4.C Indentation Varibles :sl compact. :li.c-indent-level :li.c-continued-statement-offset :li.c-brace-offset :li.c-brace-imaginary-offset :li.c-argdecl-indent :li.c-label-offset :esl. .* :h2.Running Compilers under Emacs :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x compile :dd.Run a compiler under Emacs, with messages to :q.*compilation*:eq. buffer :dt.a-x grep :dd.Run grep under Emacs, list matching lines in :q.*compilation*:eq. buffer :dt.a-x kill-compiler :dd.&rbl. :dt.a-x kill-grep :dd.&rbl. :dt.c-x ´. :dd.Visit the location of the next compiler message or grep match :dt.c-u c-x ´. :dd.Start at beginning of messages :edl. :h4.Compiler Variables :sl compact. :li.compile-command :p. Defaults to :q.make -l:eq.. Can be overridden with local variables. :esl. .* :h2.Abbreviations :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-x + :dd.Define an abbrev to expand before point :dt.c-x c-a :dd.Define an abbrev that is only available in current major mode :dt.c-x - :dd.Define a word in buffer as an abbrev :dt.c-x c-h :dd.Define a word in buffer as a mode-specific abbrev :dt.a-x kill-all-abbrevs :dd.&rbl. :dt.a-&ssq. :dd.Separate a prefix from an abbrev :dt.c-x &ssq. :dd.Expand the abbrev before point :dt.a-x unexpand-abbrev :dd.Undo last abbrev expansion :dt.a-x expand-region-abbrevs :dd.Expand some or all abbrevs found in the region :dt.a-x list-abbrevs :dd.Print a list of all abbrevs :dt.a-x edit-abbrevs :dd.Edit a list of abbrevs :dt.a-x write-abbrev-file :dd.Write a file containing abbrevs :dt.a-x read-abbrev-file :dd.Read the abbrev file :dt.a-x define-abbrevs :dd.Define abbrevs from buffer :dt.a-x inster-abbrevs :dd.Insert all abbrevs and their expansions into the buffer :edl. .* :h2.Pictures :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x edit-picture :dd.Enter picture-editing mode :dt.c-c c-c :dd.Return to previous major mode :dt.c-c < :dd.Move left after insertion :dt.c-c > :dd.Move right after insertion :dt.c-c &caret. :dd.Move up after insertion :dt.c-c &dot. :dd.Move down after insertion :dt.c-c c-k :dd.Clear out the region. With argument, kill it. :dt.c-c c-w r :dd.Like c-c c-k, but save region in register r. :dt.c-c c-y :dd.Copy last killed rectange into buffer by overwriting. Point defines upper left corner. With argument, insert instead of overwriting. :dt.c-c c-x r :dd.Like c-c c-y, but use rectangle from register r. :edl. .* :h2.Narrowing :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.c-x n :dd.Narrow down to the region :dt.c-x w :dd.Widen to entire buffer (make entire buffer visible) :edl. .* :h2.Sorting :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x sort-lines :dd.Sort region. A prefix argument means sort into descending order. :dt.a-x sort-paragraphs :dd.Sort region by paragraphs. :dt.a-x sort-pages :dd.Sort region by pages. :dt.a-x sort-fields :dd.Sort region by lines. Fields are separated by whitespace. Field number is specified by argument. Negative argument signals descending order sort. :dt.a-x sort-numeric-fields :dd.Convert field to a number and sort. :dt.a-x sort-columns :dd.Sort region on fixed range of columns. Put :q.point:eq. at one column and :q.mark:eq. at the other column. Region of sort is defined as the lines :q.point:eq. and :q.mark:eq. are located in. This command sorts a rectangle. :edl. .* :h2.Shell Commands :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-! :dd.Run shell command :dt.a-| :dd.Run shell command with region contents as input. Optionally replace region with output. :dt.a-x shell :dd.Run a subshell with input and output through Emacs buffer. :edl. .* :h3.SubShell Commands :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.RET :dd.Send buffer line as input (if at end of line), otherwise copy line to end of buffer and send it. Leave out prompt. :dt.c-c c-d :dd.Send end of file. :dt.c-c c-u :dd.Kill all text that hasn't been sent yet. :dt.c-c c-w :dd.Kill a word before point :dt.c-c c-c :dd.Interrupt the shell :dt.c-c c-z :dd.Stop the shell :dt.c-c c-&bslash. :dd.Send quit signal to shell :dt.c-c c-o :dd.Delete last batch of output from shell :dt.c-c c-r :dd.Scroll top of last batch of output to top of window :dt.c-c c-y :dd.Copy the previous bunch of shell input to before point. :edl. :h4.Shell Variables :sl compact. :li.shell-prompt-pattern :p. Should contain a regular expression that matches shell prompt. This allows Emacs to delete shell prompt before resubmitting a command. :esl. .* :h2.Printing Commands :dl compact tsize=15. :dthd.Key :ddhd.Binding :dt.a-x print-buffer :dd.Print copy of current buffer using print command :dt.a-x lpr-buffer :dd.Print copy of current buffer using lpr command :dt.a-x print-region :dd.Like print-buffer, but only prints region :dt.a-x lpr-region :dd.Like lpr-buffer, but only prints region :edl. .* :h2.Misc Commands :dl compact tsize=15. :dthd.Key :ddhd.Binding .* :dt.a-x top-level :dd.Exit recursive editing level .* :dt.a-x what-page :dd.Print page number and line in page :dt.a-x what-line :dd.Print line number :dt.a-= :dd.Number of lines in current region :dt.c-x = :dd.Print character code and position .* :dt.a-x doctor :dd.End each line by typing RET twice. :dt.a-x yow :dd.??? .* :edl. .* :h2.Ack! Ack! :p. All of this material was extracted (painfully, I might add) from the :cit.GNU Emacs Manual:ecit., Fifth Edition, Emacs Version 18 for Unix Users (dated October 1986), and from the Epoch Release 3.1 documentation. :p. Kevin McCullen :euserdoc.