|
|
1.1 root 1: .tr ~
2: .\" EMACS_MODES: fill !c
3: .TL 126010-2200 40158-100
4: An Interactive Screen Editor for Unix (Issue 2)
5: .AU "Warren Montgomery" WAM IH 55235 2494 6C-501 85-55235-?
6: .TM ??
7: .SA 1
8: .NR Pt 0
9: .AS 2
10: High speed data communication and display screen terminals make
11: possible a fundamentally different mode of entering and editing text
12: to a computer system. An interactive screen editor allows a user to
13: enter and edit files, and to see the effects of the editing
14: immediately.
15: .P
16: A good screen editor can improve productivity in several ways. The
17: need for paper listings, and thus the expense and delay in dealing
18: with them, is greatly reduced with the availability of a screen
19: editor. The editor can provide a customized environment for
20: particular tasks, such as editing program source or word processing,
21: which can relieve the user of the mechanical parts of the task (such
22: as maintaining proper indentation). The immediate feedback provided
23: reduces mistakes, and speeds up their detection. A simple set of editing
24: commands can be used
25: effectively by relatively unskilled users, because of the feedback
26: obtained by seeing the effects of editing.
27: .P
28: This memorandum describes an interactive screen editor for UNIX\*F
29: .FS
30: Unix is a Trademark of AT&T Bell Laboratories
31: .FE
32: known as EMACS. The editor is patterned after a very popular screen
33: editor originally developed at the Artificial Intelligence
34: Laboratory M.I.T. It was developed by the
35: author as a tool for his own work and is currently used by a large
36: number of users in Bell Laboratories. Emacs is available through
37: the experimental tools facility within Bell Labs, and through the
38: Toolchest package to outside customers. The editor provides a
39: friendly editing environment with the advantages outlined above,
40: while running in the small address space provided to the UNIX user
41: on the PDP\*F-11/70. This memorandum describes the commands and
42: editing environment of EMACS, and some experience with its use.
43: It obsoletes the first users manual published in 1980.
44: .FS
45: PDP is a Trademark of Digital Equipment Corporation
46: .FE
47: .AE
48: .MT "TECHNICAL MEMORANDUM"
49: .H 1 "INTRODUCTION"
50: Text editing is the most common task of many computer users. The
51: creation and modification of programs, data bases, and memoranda
52: occupies much of the time that a user spends with a computer system.
53: The ability to edit programs and recompile them was one of the
54: primary reasons for the success of early time-sharing systems over
55: batch processing systems.
56: .P
57: Many of the text editing tools now in use are based on the editors
58: for the early timesharing systems. These editors were developed for
59: an environment that included mostly low-speed (110 baud) printing
60: terminals, and expensive computer systems that were not prepared to
61: interact with the user on a character at a time basis. In such a
62: environment, it was appropriate to minimize the amount of output
63: produced by the editor, and to allow the user to specify a lot of
64: changes to be made by a single editor "command". Editors such as
65: the standard UNIX\*F editor (ed) are ideal for this environment.
66: .FS
67: Unix is a Trademark of AT&T Bell Laboratories
68: .FE
69: .P
70: In recent years, printing terminals have been repaced by display
71: terminals capable of handling high data rates in many applications.
72: The cost of
73: computing has steadily dropped. The text editing tools made
74: available to users must evolve to take advantage of these changes.
75: With a high-speed display terminal, minimizing output is no longer
76: appropriate. Instead, the display can be used to provide feedback
77: for the user on the results of editing. The lower cost of
78: computing, and better hardware support for terminals, make character
79: at a time interaction with the computing system feasible. The EMACS
80: editor described in this report is one attempt to take advantage of
81: these effects in order to provide the user with a simple and
82: powerful editing environment.
83: .P
84: EMACS is a screen editor that can be used to build or to edit files
85: using a display terminal, such as the hp2621, vt-100, or teletype
86: 5420. The user
87: interface to this editor is quite simple. The user is presented
88: with a display of the contents of a portion of the buffer being
89: edited. This display indicates \fIexactly\fP what is
90: in the area being displayed, including any non-printing characters.
91: The contents of the buffer being edited can be read from or written
92: to a UNIX file.
93: Characters typed by the user will be inserted into the buffer
94: (and reflected in the display) at the point indicated by the
95: terminal's cursor. This is the primary mechanism for entering and
96: modifying text.
97: .P
98: Control characters and escape sequences can be used to perform other
99: editing functions, such as moving the cursor to a different position
100: in the buffer, deleting text, replacing text, or searching. Thus
101: there is only one mode of interpretation of characters typed to
102: EMACS, in which either text to be entered or commands can be
103: entered. This simple interface relieves the user of the need to
104: remember what mode he is in, and prevents the disastrous
105: mistakes that can occur when text to be inserted is evaluated as an
106: editor command. A simple mechanism is provided to allow a user to
107: insert control and escape characters when needed.
108: .P
109: Although there is a rich vocabulary of commands available,
110: including commands that perform functions tailored to a particular
111: application (such as indenting a C program), the most common way in
112: which EMACS is used to edit is simply to position the cursor
113: over the area to be changed, and enter the changes. The immediate
114: feedback provided by the visual display appears to be very important
115: to the user.
116: .P
117: This editor was written by the author as an aide to his other work,
118: and patterned after the EMACS editor written for the PDP\*F-10 systems
119: .FS
120: PDP is a Trademark of Digital Equipment Corporation
121: .FE
122: at the M.I.T. Artificial Intelligence Laboratory. The interface to the
123: user closely follows that provided by the M.I.T. version, because
124: the author was familiar with that version. The implementation of
125: EMACS for UNIX described in this report was done by the author, and
126: is independent of any other implementations of Emacs.
127: .P
128: The author and his organization are not supporting EMACS. The
129: author is, however, willing to distribute copies of the software for
130: use within Bell Laboratories, and is interested in comments
131: regarding features or problems with EMACS. The author will repair
132: problems as time allows, but makes no guarantees to fix problems
133: promptly.
134: .P
135: The remainder of this report contains a user's manual for the EMACS
136: editor, and a discussion of the experience that we have had with
137: EMACS in our department. EMACS continues to evolve to provide more
138: commands and remove implementation restrictions. The users manual
139: here describes EMACS version 4.9, which was in use in March, 1985.
140: .P
141: This document is intended to serve the needs of a number of
142: different kinds of readers. Briefly, here is a guide on how to read
143: it for various kinds of readers.
144: .VL 40
145: .LI "Getting Started as a New User:"
146: Read Chapters 2, 3, and 6. As you need to, refer to the information
147: in Chapters 4, 5, and 7.
148: .LI "Getting Started as an Experienced User:"
149: Users of other Emacs like editors will probably find the material in
150: chapters 6 to be most useful to start.
151: .LI "Referring to Specific Commands:"
152: All users will find the command and mode descriptions in chapters 4,
153: 5, and 6 to be useful to refer back to specific command
154: descriptions.
155: .LI "Learning about Editors in General:"
156: People interested in the general flavor of emacs and in our
157: experiences with it should read chapters 2 and 8 to get an
158: introduction and to see a discussion of how the features are used.
159: .LE
160: .H 1 "Basic concepts"
161: Before going into the editing commands of EMACS, some basic concepts
162: should be learned. EMACS operates rather differently from
163: line oriented editors, and even from other screen oriented editors
164: in the way that it treats the screen and the keyboard. Some of it's
165: conventions for displaying and inputing characters are not like
166: other Unix tools, primarily because they were originally developed
167: for another environment.
168: .H 2 "The Character Set"
169: EMACS operates on characters from an alphabet of 256 different
170: characters. These include the 128 ASCII characters that can be entered
171: from a terminal, and 128 "Meta" characters. A Meta character is
172: entered by preceding it with an escape (ESC key).
173: .P
174: In this document and in the displays produced by emacs, control
175: characters are indicated by the character '^' followed by the
176: equivalent printable character (usually capitalized). Thus '^X'
177: represents a control-x, which is typed by hitting the control
178: and 'x' keys simultaneously. For some
179: unusual non-printing characters, the display is not obvious:
180: .VL 10
181: .LI "^?"
182: Rubout or delete (ASCII 0177)
183: .LI "^@"
184: Null (ASCII 0)
185: .LI "^["
186: Escape (ASCII 033)
187: .LI "^\e"
188: The "fs" character (ASCII 034)
189: .LI "^]"
190: The "gs" character (ASCII 035)
191: .LI "^^"
192: The "rs" character (ASCII 036)
193: .LI "^_"
194: The "us" character (ASCII 037)
195: .LE
196: .P
197: Meta characters are typed to Emacs by hitting the escape character,
198: and then any second character (including a control character.) They
199: are displayed by emacs as "M-" followed by the equivalent ASCII
200: character. Thus "M-a" (Meta - a) is the character obtained by typing escape
201: followed by a, and "M-^B" (Meta - control-b) is the character
202: obtained by typing escape followed by control-b.
203: .H 2 "The display"
204: The display screen contains a window showing a view of the buffer
205: being edited, which contains about 20 lines on a typical display
206: terminal. The terminal cursor is positioned at the
207: point where the editor cursor (the current position where editing is
208: taking place) is in the buffer. Each line of the buffer
209: (delimited by a newline character) begins at the beginning of a display
210: line. A line that exceeds the screen width is normally continued on
211: the next screen line. Whenever a line must be continued on the next
212: screen line an exclamation mark (!) is displayed in the last column
213: of the first screen line. If the editor is in line number (lnumb)
214: mode, then a line number is printed at the beginning of each line in the buffer.
215: .P
216: Printable characters are displayed normally, while tabs are displayed as
217: white space that fills up the space on the screen until the next
218: position at a multiple of eight.
219: Non printing control characters and meta characters are printed with
220: the conventions outlined above.
221: .SP
222: If you edit a file which contains characters that have the high
223: order (parity) bit set, they will display as "M-" followed by the
224: display of the character. You will only run into this when trying
225: to edit files containing binary information.
226: .P
227: In addition to the display buffer, several lines of the screen are used
228: for status information and for displaying parameters entered into EMACS,
229: such a file name. One of these lines known as the status line contains the
230: editor name, editor version, buffer number and name, and file name. Some
231: of the more recently introduced commands described in this document
232: indicate the version in which they were introduced, so that you can
233: determine whether or not a particular command is in the version that
234: you are running.
235: If the buffer has not been modified since the file was read or written,
236: an '=' will be displayed between the buffer and file names. Otherwise,
237: a '>' will appear.
238: .P
239: The lines below the status line are used for the time of day display
240: (if time mode is on), and for emacs to prompt for parameters for
241: commands. Some commands cause the buffer display to be erased in
242: order to display other information in place of the buffer. The word
243: "Continue?" will be displayed at the bottom of the screen when this
244: happens. Typing 'y', ' ', or return will bring back the buffer
245: display. Typing 'n' may allow you to re-execute the command
246: producing the display.
247: .P
248: Figure 1 shows a typical screen during a EMACS session. The buffer
249: "Main", number 0, is being used to edit a program test.c. The
250: buffer has been modified since the last write to the file test.c.
251: .DF
252: .ce
253: Figure 1 EMACS screen Display
254: .SP 2
255: 1 #include <stdio.h>
256: 2 /* EMACS_MODES: c, !fill, comcol=43 */
257: 3
258: 4
259: 5 /* This is a c program */
260: 6
261: 7 main()
262: 8 {
263: 9 int i;
264: 10 char c;
265: 11
266: 12 for (i = 0;i > 0; i++) {
267: 13 printf("i = %d\en",i); /* print i */
268: 14 }
269: 15 }
270: 16
271:
272: EMACS 4.8 (0) Main > test.c
273:
274:
275: .DE
276: .H 2 "The Text in The Buffer"
277: Each buffer that you edit holds a sequence of characters. Any
278: characters can be present in an emacs buffer, including control and
279: meta characters. The only limitation is on the number of characters
280: that can be on one line in the buffer. Normally, emacs treats the
281: buffer just as a sequence of characters.
282: .P
283: One difference between emacs and many editors is that emacs does not
284: treat "newline" characters specially. Between each pair of adjacent
285: lines of text in the buffer is an invisible "newline" character. If
286: the cursor is at the end of one line, it is in front of the newline
287: character, and deleting a single character will delete the newline,
288: causing the text in the following line to be joined to the current
289: line. Newlines can be inserted, deleted, and searched for like any
290: other characters.
291: .P
292: Some emacs commands operate on units of text in the buffer, like
293: words, lines, sentences, pages, etc. These work on top of the base
294: level which still treats the buffer as a string of
295: characters.
296: .H 2 "Command structure"
297: Unlike most other editors, emacs does not have distinct "modes" for
298: inserting text into the buffer and for entering commands. Thus
299: there are no commands for inserting text, and no special convention
300: to end a text insertion. Instead, at any point ordinary characters
301: can be inserted into the buffer simply by typing them, while control
302: and meta characters are used for editing commands.
303: .P
304: Each character that is typed into EMACS is in fact interpreted as a
305: command. All of the ordinary printing characters insert themselves into the
306: buffer being edited at the point defined by the cursor. Thus
307: the command invoked when you type the character 'x' inserts an x
308: into the buffer at the point shown by the cursor. The control and
309: meta characters are used for various editing functions.
310: .H 2 "Arguments and Parameters"
311: All commands, including the printing characters, take a numeric argument
312: that has some effect on their interpretation. The default argument
313: given to a command for which no argument is specified is 1. To
314: specify some other argument to a command, you can enter escape,
315: followed by a sequence of digits, and then the command.
316: You can specify a negative value for an argument by entering escape
317: followed by '-', followed by a sequence of digits.
318: Numbers starting with a 0 are interpreted as
319: octal, while numbers starting with any other digit are decimal.
320: A second
321: way of specifying the argument is to precede the command by one or more
322: ^U (control-u) characters. Each ^U multiplies the value of the argument
323: by 4.
324: .P
325: For most commands, the effect of the argument is to multiply the
326: number of times that the command is applied. Thus the sequence ^U^Ux
327: inserts 16 x's into the buffer at the current location. The sequence
328: ESC13^N moves forward 13 lines in the buffer.
329: .P
330: In addition to the numeric argument given to all commands, some
331: commands will prompt the user for additional character string
332: parameters. The commands that take parameters, and the method of
333: entering parameters are described in the section on file and buffer
334: commands.
335: .H 1 "Basic Emacs Commands"
336: As noted above, every character you type to emacs is interpreted as
337: a command. This section describes a simple set of commands that
338: will be sufficient for most editing that you do. Subsequent
339: sections describe more advanced commands that are very useful in
340: certain situations, and other aspects of emacs.
341: .P
342: Emacs has a large number of commands. Most of them have a mnemonic
343: significance that should be obvious (like ^B for backwards or ^D for
344: delete). Some, unfortunately, don't have any obvious meaning. As a
345: general rule, control character commands operate on characters and
346: lines, while the corresponding meta character commands operate on
347: words or sentences.
348: .P
349: The user interface of emacs was designed for touch typists. A
350: deliberate choice was made to use control and meta characters for
351: commands rather than special keys, such as the function or "arrow"
352: keys on many terminals, since these keys are different on every
353: terminal and generally cannot be reached without taking your fingers
354: off of the home position of the keyboard. Typically the only
355: difficulty faced by an emacs user in adapting to a new terminal is
356: locating the escape key, which is unfortunately located differently
357: on every terminal. With a little practice, you will find that your
358: fingers become adept at locating the keys for all of the basic
359: commands with little thought and without having to look at the
360: keyboard.
361: .H 2 "Getting Help or getting out of trouble"
362: Emacs has many self-help features. The commands listed in this
363: section are useful to know about because they can provide help or
364: remedy mistakes.
365: .VL 10
366: .LI "M-?"
367: Explain. This command prompts for a character and prints a brief
368: explanation of what that character does.
369: .LI "M-w"
370: Wall Chart. This command puts a listing of all commands (including
371: user defined commands), and their help explanations into the
372: current buffer. This command is a
373: convenient way of producing a "wall chart" of the commands. The
374: list is inserted into the buffer at the current position, so that
375: normally one would want to execute it in an empty buffer.
376: The appendix to this report contains a current copy of the wall chart.
377: .LI "^L"
378: Refresh. refresh the display. Occasionally, some error may cause the
379: display to become garbled. ^L re-creates it from scratch. If you
380: give an argument to ^L, it is used to specify how many lines will
381: appear on the screen before the current line. When invoked with an
382: argument, this command does not re-create the display from scratch.
383: .LI "^G"
384: Abort. Typing ^G at any point that emacs is asking for input
385: will abort the current command. This applies at
386: any step (specifying arguments, typing escape, entering parameters
387: that emacs asks for, etc.). (There are a couple of exceptions
388: related to advanced editing commands, but even with these, typing ^G
389: several times will always get you out with minimal damage).
390: This is a convenient way of aborting anything that you are not sure
391: that you want to complete, and may not know how you started.
392: .LI "M-u"
393: Undo. This command undoes the effect of the last significant text
394: modifying command that can be undone. Undo is it's own inverse, so
395: invoking undo twice in a row undoes the result of the undo command.
396: Significant text modifying commands include all except insertion of
397: individual characters (including newlines), and the open-line (^O)
398: command.
399: .P
400: Almost all commands can be undone, but a few effects of commands
401: can't be undone. M-u will not undo the
402: effects of reading or writing files, nor can it undo anything done
403: by executing unix commands from emacs. Undo cannot be used to bring
404: back buffers that may have been inadvertently killed with the ^X^K
405: command (see below). Undo can undo all other significant text
406: modifications, with the exception that when the last significant text
407: modification was a replace command, only a limited number of
408: replacements can be undone. If more replacements were done with one
409: command, undo prints a warning error message and if the user
410: specifies then undoes what it can.
411: .LI "^X^C"
412: Quit Emacs.
413: If any buffers have been modified since the last write, EMACS will
414: ask whether or not to write out each such buffer before exiting.
415: EMACS will not ask whether or not to save an empty buffer.
416: .LI "BREAK"
417: Emacs will not respond to your normal interrupt character, but it
418: will respond if you hit the BREAK key on your terminal. Break
419: causes emacs to stop anything that it was doing at the next
420: convenient point, and displays a message to you listing some
421: options. When you hit break you can either continue what you were
422: doing, abort what you were doing, exit from emacs, or suspend what
423: you were doing such that you can return to it later if you wish.
424: .LE
425: .H 2 "Simple cursor movement commands"
426: There are many ways to move the cursor around in the buffer without modifying
427: the text in the buffer. Most of these use their argument to specify
428: how many times the movement is to be repeated.
429: .VL 10
430: .LI "^F,^B"
431: Move forward or backward one character. Recall that the end of each
432: line counts as one character, so that ^F at the end of one
433: line will put you at the beginning of the next line.
434: .LI "^N,^P"
435: Move to next or previous line. Emacs moves to the same character
436: position in the line below (^N) or above (^P) the current line.
437: Note that if the buffer contains tab or control characters, the same
438: character position in the lines in the buffer may display at
439: different points in the screen.
440: .LI "^A,^E"
441: Move to the beginning (^A) or end (^E) of the current line of the
442: buffer. Note that these work on one line of the buffer, not one
443: line of the screen. If the current line is longer than will fit on
444: one line of the screen display, these commands will move up or down
445: on the screen to the real beginning or end of the line in the buffer.
446: .LI "M-<,M->"
447: Move the cursor to the beginning or end of the buffer.
448: .LI "M-f,M-b"
449: Move the cursor forward or backward by one word. In emacs, words
450: are delimited by non-alphabetic or non-numeric characters. If your
451: terminal is capable of displaying underscored characters, emacs will
452: not consider these characters as separating words.
453: .LI "M- a,M-e"
454: Move the cursor to the beginning or end of the current sentence.
455: The end of a sentence is defined as a punctuation mark followed by two
456: or more whitespace characters (blanks or newlines). With an
457: argument, these commands can be used to move forwards or backwards
458: by a specified number of sentences.
459: .LI "^V,M-v"
460: Move to next or previous page. The cursor is moved forward or
461: backward so that the display will show the text just before or just
462: after the text now in the window on the screen.
463: .LI "M-g"
464: Move the cursor to the line number specified by the argument given
465: to the command.
466: .LE
467: .H 2 "Simple Text Deleting and Moving Commands"
468: Several commands are available to delete text from the buffer. All of
469: these commands operate on text near the current cursor position. The
470: deletion commands are:
471: .VL 10
472: .LI "^D,^H"
473: Delete forwards or backwards from the cursor. ^H, or backspace
474: deletes the character immediately before the cursor. ^? or rubout,
475: is a synonym for ^H. ^D deletes the character on top of the cursor.
476: If given arguments, these commands delete blocks of text forward or
477: backward of the current cursor position.
478: .LI "M-d,M-^?"
479: Delete words forwards or backwards from the cursor. These two
480: commands delete words (as defined for M-f and M-b). If the current
481: cursor position is in the middle of a word, M-d will delete from the
482: cursor to the end of the word while M-^? will delete everything
483: before the cursor.
484: .LI "^K"
485: Delete to the end of this line. If invoked without an argument, ^K
486: deletes the remaining text on this line (if any). If no text follows the
487: cursor on the current line, ^K deletes the newline. With an
488: argument of 0, ^K deletes the text before the cursor on the current
489: line. With an argument of n greater than zero, it
490: deletes n lines forward from the cursor position. The text from the
491: cursor up to and including the nth newline is deleted. With an
492: argument less than zero, the deletion is backwards from the cursor
493: position.
494: .LI "M-~"
495: (Meta space)
496: The command Meta-space places an invisible mark on the
497: current cursor position. This mark can be used in subsequent editing.
498: Each mark is simply a position in the buffer (line number and
499: character within the line.) Thus if you add or delete text in front
500: of a position where a mark was placed, the mark may not remain on
501: the same character, but stays on the same position.
502: .P
503: Emacs actually maintains 16 different marks, normally allocated as
504: one per buffer. (Thus if you set marks in different buffers, they
505: are normally independent.) You can, however, alter this by
506: specifying a mark number as an argument to Meta-space and other
507: commands that work with marks. This allows you to mark up to 16
508: different positions in one buffer. The command ^@ (Control-@) is a
509: synonym for Meta-space, but cannot be typed on all keyboards.
510: .LI "^W"
511: The command '^W' deletes the text between the current cursor position and
512: the mark. This is a convenient way to delete a well defined block of text.
513: If an argument is specified, it is used to select the mark number
514: The mark can be either before or after the cursor position and
515: achieve the same effect.
516: .LI "^Y"
517: Insert last killed text. All text that is deleted is saved in a "kill
518: stack". The kill stack holds the last 16 deletions. There is
519: also a limit on the total amount of text that can be held in the
520: kill stack, but you are unlikely to encounter it.
521: ^Y retrieves the most recently deleted text. The most
522: frequent use of this command is in moving text around. The procedure
523: is: kill the text to be moved, move the cursor to where you want it, and
524: enter ^Y. Another use of ^Y is to undo an unwanted deletion. ^Y
525: leaves the mark at the beginning of the inserted text, and puts the
526: cursor at the end. ^Y treats it's argument (if any) as a count for
527: the number of copies of the deleted text to bring back, and not a
528: mark number. ^Y operates only with the default mark.
529: .LI "M-y"
530: Replace last retrieved text. This command kills the text between
531: the cursor and the mark and replaces it with the next to last item on
532: the kill stack. This command can only be used immediately after ^Y,
533: where it changes text that has just been retrieved. By entering ^Y
534: followed by some number of M-y's, any text in the kill stack can be
535: retrieved.
536: .LI "M-p"
537: Pickup the region of text. This command picks up the text between
538: the current position and the mark and puts it in the kill stack,
539: without changing the buffer. This is useful for duplicating blocks
540: of text in the buffer. An argument can be used to specify which mark
541: to use
542: .LI "^X^X"
543: (Type control-X twice) Exchange the cursor position and the mark.
544: An argument can be specified to indicate the mark to exchange with.
545: .LE
546: .H 2 "Simple File and buffer Commands"
547: Commands that access files and buffers must ask for the
548: name of the appropriate file or buffer. All of these commands (and
549: some of the others) ask for the appropriate information at the
550: bottom of the screen. You can use some of the simple editing
551: commands described here, plus a couple of special commands, to edit
552: a file or buffer name that you enter this way. The commands that
553: you can use for editing are:
554: .VL 10
555: .LI "^F,^B"
556: Move forward or backward one character
557: .LI "^A,^E
558: Go to beginning or end of line.
559: .LI "^D,^H"
560: Delete forward or backward
561: .LI "^U"
562: Multiply the effect of the next command by 4.
563: .LI "^K"
564: Kill (erase) the whole line
565: .LI "^G"
566: Abort the command asking for information
567: .LI "^X"
568: Enter the current line from the file at the cursor
569: .LI "^Y"
570: Enter the current file name at the cursor
571: .LI "^L"
572: Redisplay the prompt and the string being entered
573: .LI "^T"
574: Transpose the characters before and after the cursor
575: .LI "^Q"
576: Quote the following character (eliminates the special significance
577: of the next character and just sticks it literally in the string
578: being typed.)
579: .LI "return"
580: End the string being typed, and continue editing. (If the cursor is
581: in the middle of the line, the whole line is given to whatever
582: command asked for it, not just the text before the cursor).
583: .LE
584: .P
585: Most of the file accessing commands are invoked through the ^X command.
586: ^X is a prefix for several useful commands, most of which involve file
587: or buffer access.
588: These commands are invoked by a ^X followed by a second character.
589: .P
590: In the commands that ask for filenames, the normal shell conventions
591: for partially specified names can be used. Any of the following
592: sequences can be used in a filename and will be substituted
593: properly.
594: .tr ~~
595: .VL 20
596: .LI "$VARIABLE"
597: Substitutes the value of the environment variable $VARIABLE or
598: nothing if VARIABLE is not defined. Thus you can use path names like
599: $HOME/.profile.
600: .LI "* and ?"
601: These characters can be used to specify incomplete filenames and
602: will be expanded. If more than one file matches the name given,
603: then emacs will pick only the first one.
604: .LI "~USER"
605: This translates into the home directory of the user USER. In
606: addition, EMACS always translates the special name ~EMACS into an
607: emacs library directory. This is a directory where special
608: files needed by emacs are stored and where standard macros are
609: stored (in ~EMACS/macros).
610: .LI "`COMMAND`"
611: This causes COMMAND to be run and substitutes it's standard output.
612: .LE
613: .tr ~
614: .P
615: With these preliminaries out of the way, here are some of the
616: commands that work with files and buffers
617: .VL 10
618: .LI "^X^R"
619: Read file. EMACS will prompt for a file name, which you enter as
620: described above. When the file name for ^X^R has been entered, EMACS
621: will read the specified file into the buffer.
622: .P
623: Many of the commands in this section, including ^X^R, use their
624: argument to specify minor variations on the basic action of the
625: command, rather than specifying a count. In the normal case, (with
626: the default argument of one), ^X^R clears the buffer before reading.
627: If ^X^R is invoked with an argument that is not 1 (i.e. ^U^X^R) it
628: inserts the file into the buffer at the current cursor position.
629: If ^X^R is invoked with a negative argument, no error message is
630: produced if the specified file cannot be read.
631: .LI "^X^W"
632: Write file.
633: Normally, if the specified file exists and has two or more links to
634: it, EMACS will ask whether to overwrite the existing copy of the
635: file or to unlink the specified file name and create a new file in
636: its place, leaving the contents of the old file (which may be
637: obtained through the other names it was linked to) unchanged.
638: If emacs fails or the unix system crashes during an attempted write
639: (either ^X^W or ^X^S), the previous contents of the file are saved
640: in a file .EMACS in your current working directory.
641: .P
642: Passing an argument to ^X^W (i.e. ^U^X^W) causes the contents of the
643: current buffer to be appended to the specified file rather than
644: replacing it.
645: .LI "^X^S"
646: Save buffer. This writes out the buffer to the last file read or written if
647: the file has been modified. If the buffer was not read from a file,
648: and has never been written to one, such that there is no file name
649: associated with the buffer, emacs will ask for a filename to save
650: the buffer in.
651: .LI "^X^B"
652: Change buffer. EMACS allows up to 12 named buffers to be edited
653: concurrently. Each buffer can hold a different file, and has it's
654: own current cursor position. In emacs you work with one buffer at a
655: time, although you can display two buffers on the screen at the same
656: time. The ^X^B command asks for the name of a buffer and makes
657: that buffer the current buffer.
658: .P
659: All of the commands that ask for buffer names accept either the text
660: name of the buffer, or the buffer number (shown in parentheses after
661: the editor name on the status line) for a buffer name. The number
662: is convenient if you
663: don't like typing long names. Emacs treats two buffer names
664: specially. For any of the commands that ask for buffer name, if you
665: enter an empty buffer name (by just hitting return in response to
666: the prompt, emacs shows you a display of all of your currently
667: defined buffers, indicating which one is current and which ones have
668: been modified since they were last written. If you type space
669: or 'y' in response to the prompt that appears after the display,
670: emacs will abort whatever command asked for the buffer name and
671: continue editing. If you type 'n' in response to the prompt,
672: emacs will ask again for the buffer name, and then complete whatever
673: command asked for the buffer name. If the buffer
674: name "..." is entered, a new, empty buffer with a unique name is created.
675: .LI "^X^F"
676: Find file. This command prompts for a file name and switches to a
677: buffer that holds the specified file. If the specified file has
678: been read into a buffer, the effect of find file is to change to
679: that buffer. If no buffer holds the specified file, the effect of
680: find file is to create a new buffer and read the specified file into
681: it. Find file is a convenient way to switch between editing several files.
682: If ^X^F is invoked with a negative argument, no error message is
683: produced if the specified file cannot be found.
684: .LI "^X^K"
685: Kill Buffer. This command prompts for a buffer name and destroys
686: the specified buffer. You cannot kill the current buffer this way.
687: Text in the buffer that is killed is lost and cannot be recovered.
688: .LE
689: .H 2 "Simple Search, Replace, and other commands"
690: Emacs provides several commands that search for text in the buffer,
691: and also commands which allow you to specify global replacements,
692: like change every instance of "football" to "baseball". The
693: simplest forms of these commands are described here, along with a
694: couple of miscellaneous commands that are useful. More complex
695: versions of search and replace are described in the subsequent
696: section on advanced editing.
697: .VL 10
698: .LI "^S,^R"
699: Forward and Reverse Search. These commands allow you to look for
700: text in your buffer. Emacs will prompt at the bottom of the screen
701: with "Search" or "Reverse Search". In response to the prompt, you
702: can type in characters, and emacs will begin to look for the next
703: match for what you type, going either forwards (^S) or backwards
704: (^R) from the current position in the buffer. Emacs will
705: show you the text that matches what you have typed as you type it,
706: by moving the cursor to the text, possibly moving the display window
707: in the buffer if the text you are looking for was not visible. As
708: you type in the string to look for, you get immediate feedback about
709: what emacs has found. In addition to typing normal printing
710: characters that become part of the string you are looking for, you
711: can type some special characters to either edit the string you are
712: looking for, or control the search in some other way:
713: .VL 15
714: .LI "^H"
715: This deletes the last character of the search string, and will cause
716: the cursor to go back to whatever matches what is left.
717: .LI "escape"
718: Hitting escape stops the search, leaving the cursor on whatever you
719: last found.
720: .LI "^G: "
721: This quits from the search and goes back to the point in the buffer
722: where you started the search from.
723: .LI "return or newline: "
724: These both cause a newline to become part of the search string. the
725: newline is displayed as "^J" (which is the control character
726: actually used by unix to indicate "newline") in the search string to
727: allow you to see it. Thus if you type "^Sthe~end<return>of", emacs
728: will look for a spot where "the~end" appears at the end of one line
729: and "of" appears at the start of the next line
730: .LI "^S or ^R: "
731: These characters control the search. In general, if you are going
732: forward, and type ^R, or going backwards and type ^S, the search
733: changes direction, starting from the last thing you found. If you
734: are going forward and type ^S or backwards and type ^R, the search
735: proceeds to the next occurrence (in whatever direction you were
736: going) of the search string. If you type ^S or ^R as the very first
737: thing after starting a search, emacs takes the \fIlast\fP string
738: that you successfully found with a search and makes it the current
739: search string. These characters provide a convenient way to
740: navigate when looking for something that occurs many times in the
741: buffer.
742: .LI "^Q: "
743: Typing ^Q "quotes" the next character, making it part of the search
744: string. This is a way to look for strings that contain control
745: characters.
746: .LI "other control characters: "
747: Typing any other control character causes the search to stop at
748: whatever you found, and then executes the command corresponding to
749: that control character.
750: .LE
751: .P
752: This kind of search is called an incremental search in emacs,
753: because it shows you what you have matched incrementally as you type
754: it. It is very easy to learn to use. For incremental search, the
755: search string must \fIexactly\fP match whatever you are looking for.
756: (There is a more complicated search available that allows some
757: pattern matching, and is described in the advanced commands
758: section.) Incremental search stops, indicating that it fails if you
759: reach the beginning or end of the buffer. Normally, search
760: considers upper and lower case letters to be different, however you
761: can override this with "caseless" mode.
762: .LI "M-r"
763: Query replace. You will be prompted for a From string and a To string.
764: Each can be edited using the conventions described in the previous
765: section for editing filenames. In general, Query
766: replace will allow you to replace all of the strings in your buffer
767: from the current cursor position to the end of the buffer that match
768: the From string with the To string. In the To string, the '&'
769: character can be used to designate replacement with the From string.
770: To get a real '&', prefix it with a '\e'. To get a real '\e', prefix
771: it with another '\e'.
772: EMACS then searches for the from string, positions the cursor in
773: front of it, and prompts you. You can control the replacement of the
774: item in question by what you type:
775: .VL 15
776: .LI "<space> or y"
777: Replace this occurrence and move on to the next one.
778: .LI "n or ^?"
779: Skip this occurrence and move on to the next.
780: .LI "."
781: Replace this occurrence and exit query replace.
782: .LI "^G"
783: Quit. (Exit query replace without replacing the current match.)
784: .LI "b"
785: Go back to the previous occurrence of the "To" string. It won't find
786: one that you have already replaced!
787: .LI "r"
788: Replace the rest without stopping to ask after each, and show the
789: result of the replacement after each.
790: .LI "R"
791: Replace the rest silently. (i.e. don't show the result after each
792: replacement.)
793: .LI "<ESCAPE>"
794: (Version 4.6) Causes emacs to ask for a new string to replace the "To" string with
795: with. The current occurrence will be replaced with what you type,
796: and emacs will go on to the next occurrence.
797: .LE
798: .P
799: Normally, query replace will show all occurrences of the search
800: string. With an argument (i.e. ^UM-r), it behaves like the
801: substitute command of the ed editor, looking at only the first match
802: of the From string on each line. Query replace exits when the from
803: string is no longer matched. '?' prints a summary of the options.
804: As with incremental search, the From string must match exactly to
805: something in the buffer. There is a more advanced form of query
806: replace that allows pattern matching and is described in the section
807: on advanced commands.
808: .LI "^O"
809: Open up a line. This command creates one or more empty lines at the
810: current cursor position. This is useful for inserting text in the
811: middle of the buffer, while minimizing the amount of screen refresh
812: needed.
813: .LI "^T"
814: Transpose the next two characters. The cursor moves forward one
815: character for each transposition, such giving ^T a count as an
816: argument causes the character in front of the cursor to be dragged
817: forward through the text.
818: .LE
819: .H 1 "Advanced Editing Commands"
820: The commands described in the previous section are sufficient to
821: allow a user to perform most editing tasks efficiently. The
822: commands in this section for the most part cover special situations,
823: like inserting control characters into files, or provide more
824: efficient ways to to things in certain situations.
825: .H 2 "Inserting 'odd' characters"
826: Because EMACS uses control and escape characters for commands, you
827: cannot directly insert them into the buffer by typing them. The
828: following three commands are useful for the occasional need to get
829: such characters into a buffer.
830: .VL 10
831: .LI "^Q"
832: Quote the next character(s). ^Q accepts one or more characters (the
833: number of characters specified by its argument) from the terminal
834: and inserts them "blindly" into the buffer without interpretation.
835: Only the newline (line feed) character is interpreted. EMACS strips
836: the parity bit from all characters read from the terminal, so all
837: characters inserted this way have zero parity.
838: .LI "M-q"
839: Quote characters and turn on parity bit. This acts just like ^Q,
840: however it turns on the parity bit in the character before
841: inserting. Characters inserted this way will be displayed as meta
842: characters by EMACS.
843: .LI "M-\e"
844: Convert the argument to a character and insert into the buffer.
845: This command takes its argument and converts it to a character and
846: inserts it. This provides an easy way to convert from octal or
847: decimal to ASCII, and is occasionally useful for inserting odd
848: characters for which the ASCII code is known.
849: .LE
850: .H 2 "Commands related to Windows"
851: Emacs provides a way to display two buffers on the screen at the
852: same time. When this is done, the screen is split vertically, and
853: one buffer is displayed in the top half and one in the bottom half.
854: The status line will show status of the current buffer.
855: .P
856: When emacs displays two buffers like this, only the one that is the
857: current buffer is actively updated. The display for the other just
858: sits on the screen undisturbed until you return to that buffer. You
859: can have the same buffer displayed in both windows, however note
860: that the current position is associated with a buffer, not a window,
861: thus if you move the current position in the lower window, when you
862: return to the upper window, the cursor will immediately move to
863: wherever you were in the lower window. If you have different
864: buffers in the two windows, the current positions in both buffers
865: are independent, as they are with any two buffers.
866: .VL 10
867: .LI "^X2"
868: Enter two window mode. Emacs will ask for a buffer to show in the
869: second window. The current buffer becomes the top window, while the
870: buffer that you type in response to the prompt goes in the lower
871: window and becomes the current buffer.
872: .LI "^X^^"
873: Grow window. Makes the current window grow by the number of lines
874: specified by the argument to ^X^^. This command works only when you
875: are in two window mode. You can use a negative argument to cause
876: the current window to shrink.
877: .P
878: You can also use this command to grow or shrink the buffer display
879: with only one window on the screen. This can be useful in avoiding
880: long delays when working from a low speed terminal port.
881: .LI "^X1"
882: Return to one window. The current window grows to fill the screen.
883: .LI "^X^O"
884: Switch windows. Make the dormant window current and the current
885: window dormant.
886: .LE
887: .H 2 "Advanced Search and Replace Commands"
888: The simple incremental versions of search and replace described
889: above require that you match what you are looking for exactly. The
890: commands described here allow pattern matching of regular
891: expressions, like those used by the ed editor.
892: .P
893: The description of regular expressions is to complex to reproduce
894: here. Refer to the manual for ed for a brief description. Emacs
895: provides two additional special sequences for regular expressions.
896: The character sequences "\e<" and "\e>" can be used
897: to match the beginning and end of words. Thus the string \e<the\e>
898: will match any occurrence of the word "the", but not any word
899: containing the sequence of letters "the", such as "other".
900: .P
901: In constructing regular expressions, it is important to remember
902: that in order to avoid the special significance of a character
903: like '.' or '*', you must prefix it with a backslash '\e'. If you
904: must have control characters in regular expressions, you can quote
905: them for emacs by typing ^Q before the control character.
906: .P
907: Note also that regular expression searches are constrainted to
908: matching only those things that fit all one one line.
909: .P
910: .VL 10
911: .LI "M-^S"
912: Regular Expression Search. This will prompt for a
913: regular expression to search for. You can edit the expression like
914: editing filenames. You can search forward or backward, either
915: ending at the beginning or end of buffer, or wrapping around (like
916: ed) depending on the argument given to the search command:
917: .VL 10
918: .LI "1"
919: (default) Search forward, wrapping from the end of the buffer to the
920: beginning, and failing only if the buffer contains no match for the
921: given string.
922: .LI "-1"
923: Search backwards, wrapping around from the beginning to end of the
924: buffer.
925: .LI "> 1"
926: Search forwards, stopping at the end of the buffer.
927: .LI "< -1"
928: Search backwards, stopping at the beginning of the buffer.
929: .LE
930: .P
931: In all cases, you can have emacs repeat the search, looking for the
932: next (or previous) occurrence of the search string by typing ^S or ^R
933: immediately after the regular expression search.
934: .LI "M-^R"
935: Regular expression query replace. This is just like
936: query replace, except that a regular expression is allowed in the
937: search string. You may also use the special character sequence
938: \e<digit>, to specify that the characters matched by the
939: nth subexpression (delimited by \e( and \e)) are to be used in the
940: replacement string.
941: .LE
942: .H 2 "Macros, Keyboard Macros, and Input Files"
943: Emacs provides a number of ways for a user to construct editor
944: programs from sequences of commands. The macro programming facility
945: is the best way to construct substantial programs, and is described
946: in a companion document. The commands listed here deal with two
947: other ways of saving a sequence of emacs commands for later use,
948: Input files and Keyboard Macros, and with the commands that load
949: "full" macros into Emacs for your use.
950: .VL 10
951: .LI "^X^I"
952: Re-direct input. This command directs EMACS to take input from a
953: file. The file is assumed to contain EMACS commands, and can be
954: created by editing with EMACS, using ^Q to enter control and escape
955: characters. You can also create an input file by using the commands to
956: create keyboard macros described below, and then saving the
957: resulting keyboard macro file.
958: .P
959: This command can be used to perform a series of
960: commands on the current buffer, or to set up a standard set of
961: initializations. Thus the file should contain \fIexactly\fP what
962: you would type from the keyboard to perform whatever task you wish
963: to perform. Note that if the file contains only printable ASCII text,
964: tabs, and newlines, ^X^I will effectively read the file into the
965: buffer at the current location. Note, however, that this is very
966: slow, and much better done with ^X^R.
967: .P
968: A file suitable for executing with ^X^I is known as a keyboard
969: macro, because it is interpreted just as if it had been typed from
970: the keyboard. The following commands provide a sensible way to
971: create and execute keyboard macros.
972: .LI "^X(
973: Begin Keyboard Macro.
974: This command starts remembering the keystrokes you enter so that
975: they can later be executed as a keyboard macro.
976: .LI "^X)
977: End Keyboard Macro.
978: This command stops remembering keystrokes for a keyboard macro.
979: .LI "^XE
980: Execute Keyboard Macro.
981: This command retrieves and executes the keystrokes typed between
982: ^X( and ^X). Emacs executes them just like they came from your
983: terminal. Keyboard macros are saved in the file .emacs_kbd in your
984: home directory. These are saved between sessions, so that ^XE is
985: in fact the same as invoking ^X^I (Input file) and giving
986: $HOME/.emacs_kbd as the file name to execute. Note again that you
987: can use ^X( and ^X) to create a keyboard macro, save it for
988: later use by moving the file $HOME/.emacs_kbd to another file, and
989: then invoke it by invoking ^X^I with the name of the file you saved.
990: .LI "^Xd"
991: Define macros.
992: This command treats the current buffer as definitions of new macro
993: commands. The commands are defined and become available for use.
994: For a complete description, consult the macro programming manual.
995: Note that you should not use ^Xd with the file created from a
996: keyboard macro. The format of "full" macros is different. Macros
997: are explained in a separate manual.
998: .LI "^X^L"
999: .tr ~~
1000: Load macros.
1001: This command allows you to load "full" macro definitions from a
1002: file. It is described in the macro programming manual, however even if
1003: you do not program your own macros, you may be interested in using
1004: those defined by others and will use ^X^L to load the resulting
1005: files. On most systems on which emacs is installed, there is a library
1006: directory of macros available for general use in ~EMACS/macros, and
1007: the file ~EMACS/macros/CATALOG gives a catalog to the available
1008: macros.
1009: .tr ~
1010: .LI "^Z"
1011: Exit level.
1012: In an emacs editing session, you may wind up in a nested level of
1013: emacs. This can happen either by typing "break", and responding "y"
1014: to suspend whatever you were doing and invoke a new command
1015: interpreter, or by invoking a macro that uses the recursive edit
1016: command to allow you to edit something from inside of a macro. ^Z
1017: exits your current level of emacs, returning to whatever called it.
1018: .P
1019: The ^Z command performs a function similar to ^X^C, and in fact if
1020: you have not invoked a macro that uses the "recursive edit" command,
1021: and have not hit break, both will cause you to exit from emacs.
1022: .LE
1023: .H 2 "Commands that escape to Unix"
1024: There are several commands that interact with unix, allowing you to
1025: run unix commands or send mail from inside of emacs.
1026: .VL 10
1027: .LI "M-!,M-$"
1028: Unix escape. These two commands implement five different ways to run
1029: unix commands from emacs. In all cases, the commands prompt for the
1030: name of a unix command to be run and run it. The command is run
1031: through your normal shell as indicated by $SHELL. If you enter the
1032: special command name "sh", it runs your normal shell instead of
1033: "sh". To facilitate writing programs that interact with emacs, the
1034: environment variable "filename" is set to the name of the current
1035: file in emacs when the command is run. The following summarizes the
1036: various flavors:
1037: .VL 8
1038: .LI "M-!"
1039: Run the command, suspending emacs while it runs.
1040: .LI "^UM-!"
1041: Run the command and feed it the contents of your current buffer as
1042: standard input. When the buffer is exhausted, the command will see
1043: an end of file.
1044: .LI "M-$"
1045: Run the command with standard input from your terminal but standard
1046: output and standard error are captured in the buffer ".exec", which
1047: is created if it doesn't already exist. (If it does exist, the
1048: command output replaces its current contents). Normally, output
1049: from the command is also displayed on the terminal as it is
1050: produced, but this can be overridden via the usilent or noecho modes
1051: described in the section on modes.
1052: This is useful for saving a copy of the error messages produced by a
1053: C compilation of a file being edited, for example. The file name of
1054: the .exec buffer is set to the command line that produced it. This
1055: can be useful if you want to re-execute the same command, as you can
1056: make .exec your current buffer, enter M-$, and enter ^Y followed by
1057: newline as the command line. ^Y gets the old command line back, and
1058: newline will execute it.
1059: .LI "^UM-$"
1060: Run the command and append the output to the buffer ".exec". This
1061: is just like the above except that the .exec buffer is not cleared
1062: and the output from the command is appended to it. It also inserts
1063: the command line into the .exec buffer when the command is run.
1064: .LI "M-0M-$"
1065: Start the command as a sub-process in the current buffer. The
1066: command is run with input and output connected to pipes maintained
1067: by emacs. Control returns to emacs immediately while the command
1068: runs asynchronously. Output produced by the command is
1069: asynchronously appended to the buffer as it is produced, and the
1070: mark is set to the end of the output produced by the command. Input
1071: can be sent to the command in one of two ways: First, whenever you
1072: enter a newline in this buffer and the mark is on the current line,
1073: emacs will send the text between the mark and your newline to the
1074: sub-process. This means that if you run a shell in a buffer, you
1075: can interact with it by typing in the buffer just as if it were
1076: running independent of emacs. When it prints its prompt, the mark
1077: is set to the end of the prompt, and when you hit return, the
1078: current line after the prompt is sent to the shell. The second way
1079: to send input to the buffer is to use the ^X^T command described
1080: in the next section. This sends the current region to a buffer. If that buffer
1081: has a sub-process, the region is sent to the end of the buffer and
1082: also to the sub-process as well. One use of this feature is to
1083: provide a rapid way to send new function and data declarations to an
1084: interpreted language like LISP.
1085: .P
1086: This feature is new as of emacs 4.9 and has some limitations you
1087: should be aware of. First, you can have only one sub-process
1088: running at a time. Running a second one will kill the first one.
1089: Killing the buffer will also kill the sub-process. (Note that it
1090: may not kill all of the descendants of the sub-process.) On
1091: Berkeley unix systems (4.2BSD), this feature is reasonably
1092: inexpensive to use and the response from the command will be quick.
1093: On System V Unix, there may be some delay between the time at which
1094: output is produced and the time at which it is seen. Emacs will
1095: always look for output from the process before looking for
1096: characters typed by you at the terminal, however if you are not
1097: typing, it may take some time for emacs to notice command output.
1098: (On some unix/370 and amdahl unix systems command output is not
1099: noticed until you type at emacs due to a bug in the I/O software on
1100: these systems). Some commands may not run properly as
1101: sub-processes, depending on what version of the standard I/O
1102: software they were compiled with. Most interactive programs will,
1103: however, function properly in this mode. Because of the different
1104: nature of the implementation, this feature may also cause emacs to
1105: consume more CPU time while a sub-process is running.
1106: .LE
1107: .LI "^X^G"
1108: Interrupt sub-process. If the current buffer has a sub-process running,
1109: this command sends an interrupt signal (SIGINT) to that process,
1110: just as if you had typed your normal interrupt character from the
1111: terminal. If you give this command an argument, it sends the signal
1112: number corresponding to that argument. (For example, M-9^X^G would
1113: send a kill signal to the sub-process.)
1114: .LI "M-^M"
1115: Mail. This command takes the current buffer as unix mail, and sends
1116: it. The buffer must contain at least one line starting To: , which
1117: specifies the recipients of the mail. Each recipient is delimited by a
1118: space. Any number of recipients may be listed in a single line,
1119: however to improve readability, additional To: or Cc: lines may be
1120: used in specifying lists of recipients.
1121: Any errors encountered by mail are printed. If the environment
1122: variable $MAILER is set, then it is taken as the name of the command
1123: to run to send the mail. Otherwise, emacs runs "mail".
1124: .LE
1125: .H 2 "Miscellaneous commands"
1126: The remaining commands handle special situations that occur once in
1127: a while.
1128: .VL 10
1129: .LI "^X^T"
1130: Send text to another buffer.
1131: This command sends the text between the mark and the current cursor
1132: position in the current buffer to another buffer. EMACS prompts for
1133: the name of the other buffer, and the text is inserted into that
1134: buffer at the current cursor position for that buffer. The current
1135: buffer remains unchanged. If an argument is given, it selects the
1136: mark to use. If the target buffer has a sub-process running under
1137: it, then the region is also sent to that process and is always put
1138: at the end of the buffer. (See the description of M-$ for more
1139: information.)
1140: .LI "M-s"
1141: Statistics
1142: This command displays some statistics about your editing session,
1143: such as how may characters emacs has sent to you and how many
1144: characters you have typed. The information is normally not of much
1145: interest.
1146: .LI "^X="
1147: Status. Displays status information (current line, number of lines
1148: in buffer, current character position, number of characters in
1149: buffer, etc.).
1150: .LI M-/
1151: Begin comment. This command begins a C program comment by moving to
1152: the appropriate column and putting a /* in the buffer. The next
1153: newline will close the comment and automatically append a */
1154: .LI "M-_"
1155: Underline word. This command underlines the following word of text.
1156: Useful for generating underlined text for mm.
1157: .LI "^C"
1158: Capitalize.
1159: This command capitalizes the letter under the cursor and moves the
1160: cursor forward one position. Lower case alphabetic characters are
1161: converted to upper case, while other letters are unchanged.
1162: .LI "M-c"
1163: Capitalize word. The letter under the cursor is capitalized, and
1164: the cursor is moved to the beginning of the next word.
1165: .LI "M-l (4.6)
1166: Lower case letter. The letter under the cursor is capitalized and
1167: the cursor is moved to the right.
1168: .tr ~~
1169: .LI "M-~"
1170: Unmodify Buffer. This command causes a buffer to be marked as
1171: unmodified even if it has been modified since the last write. Doing
1172: this will avoid having EMACS ask whether or not to write the buffer
1173: when you exit if you know that you do not want to rewrite the
1174: buffer. With an argument greater than 1 (i.e. ^UM-~) this command
1175: marks the buffer as modified. With an argument of zero or a
1176: negative argument, it does not change the state of the buffer but
1177: returns the buffer modified flag as its result.
1178: .tr ~
1179: .LI "M-t"
1180: Set terminal type. Prompts for terminal type and sets the character
1181: sequences used to display text to be appropriate for that terminal.
1182: Most common terminal types are supported.
1183: Emacs uses terminal commands for relative and absolute
1184: cursor position, clear screen, clear from the cursor to the end of
1185: line, insert and delete lines, and insert and delete characters.
1186: The number of characters transmitted for re-display will depend on
1187: which of these functions are available. Thus EMACS transmits fewer
1188: characters on an adm31, which has all of these functions, than with
1189: an adm3a, which has only cursor positioning and clear screen. Most
1190: terminals fall between these extremes.
1191: .LI "M-^L"
1192: Redisplay top. Redisplay the window with the current line at the top.
1193: This is useful for viewing the lines that follow the current line.
1194: Note that this does not re-create the entire display, as does ^L, so
1195: it will not correct garbling.
1196: .LI M-"
1197: Auto Fill Buffer. This command re-adjusts the lines in the buffer
1198: so that each line contains 72 or fewer characters. The adjustment
1199: is done like nroff (mm) by moving words from one line to another.
1200: nroff or mm command lines and blank lines are preserved as is. This
1201: command can be used to improve the way in which an nroff or mm
1202: source file displays, by getting rid of long lines, without
1203: affecting the output.
1204: .LI "M-:"
1205: Remap character (version 4.9). The command M-: allows you to re-map
1206: character commands.
1207: It prompts for a character (or a meta or ^X sequence) and a command
1208: (also a character sequence) to put on that character. This allows you to
1209: re-configure EMACS to your liking. You can re-map any character you
1210: like, including characters like ^X, escape, and ^U. Note that the
1211: command string is always interpreted with the default bindings (as
1212: documented in this memo), and not with the bindings set up with
1213: earlier M-: commands. Thus M-:^A^B followed by M-:^B^A will swap
1214: the ^A and ^B commands, since the command ^A in the second M-:
1215: command refers to the default meaning of ^A, not that established by
1216: the first M-: command. M-: also changes the behavior of the
1217: control characters used to edit filenames and other string
1218: parameters, but does not change the behavior of some of the
1219: characters that have special meaning in response to prompts issued
1220: by various commands, such as the responses to query replace.
1221: .P
1222: With an argument of 2 or 4 (^UM-:), this command asks for a
1223: character and a macro name to assign to that character. This allows
1224: you to bind macro commands to characters by their names instead of
1225: their current character binding.
1226: .P
1227: With an argument of 0 (M-0M-:), this command resets all of the
1228: keyboard character bindings to their default values. This may be
1229: useful in recovering from trouble.
1230: .P
1231: In all cases, the bindings established with this command and through
1232: defining macros apply to both character commands typed from the
1233: keyboard and to characters in keyboard macros and initialization
1234: files. They do not apply to the character commands executed in the
1235: body of "full" macros. See the section on macros and the
1236: macro command manual for further information on bindings.
1237: .LI "^X^M"
1238: Set Mode. This command can be used to set parameters to customize
1239: the behavior of emacs. For more information on modes, see the next
1240: section.
1241: .LE
1242: .H 1 "Modes"
1243: EMACS has a variety of parameters that can be
1244: changed from commands entered in the terminal.
1245: These are referred to as "modes" in this document and in the
1246: messages printed by emacs.
1247: There are two types of modes: on/off
1248: modes and integer modes. The '^X^M' command can
1249: be used to display or set these parameters. '^X^M' will prompt for
1250: the name of the mode to set. If you enter a return in response to
1251: the prompt, the current mode settings are displayed. Normally,
1252: emacs will display the value of each integer mode, and the name of
1253: each on/off mode that is currently on. If you enter return in
1254: response to '^U^X^M', emacs will also display the names of the
1255: on/off that are currently off, indicating for each mode whether it
1256: is on or off.
1257: .P
1258: Modes are set by giving the name of the mode to set in response to '^X^M'.
1259: If an on/off mode is given, it is turned on if no argument
1260: is given to '^X^M', and turns it off if an argument is specified.
1261: (Thus '^X^M' turns on, '^U^X^M' turns off). For an integer mode, the
1262: mode is set to the value of the argument.
1263: .P
1264: The modes and their types are listed in the following sections, along
1265: with their default values. For ON/OFF modes, the default is \fBhighlighted\fP.
1266: The modes are grouped into 4 broad categories:
1267: .BL
1268: .LI
1269: Display modes change the information in the buffer is displayed, but
1270: have no effect on it's content.
1271: .LI
1272: Interface modes change the command interface to emacs in minor ways,
1273: but don't really change any of the behavior of the commands.
1274: .LI
1275: Command modes change the way in which some of the commands work.
1276: .LI
1277: Terminal modes change the way that emacs uses the terminal, and
1278: exist mainly to get around special problems caused by certain kinds
1279: of terminals.
1280: .LE
1281: .H 2 "Display modes"
1282: .VL 15
1283: .LI "lnumb"
1284: Line Number Mode (\fBON\fP/OFF)
1285: .br
1286: This mode causes the current line number
1287: to display at the left of each line.
1288: .LI "lnowid"
1289: line number width (INTEGER=4)
1290: .br
1291: This parameter specifies how many character positions are reserved
1292: for the line number when in line number mode
1293: .LI "height"
1294: Display height (INTEGER=<screen_size-4>)
1295: .br
1296: This parameter dictates how many lines from the buffer will be
1297: displayed on the screen. It is automatically set based on the
1298: terminal type whenever the terminal type is set, and is changed by
1299: the one and two window commands. This mode and width mode can be
1300: set explicitly to restrict the display to a subset of the entire
1301: terminal screen, or can be used to allow you to use a terminal with
1302: a settable screen size for which emacs does not have the right size
1303: built in.
1304: .LI "width"
1305: Screen Width (INTEGER = <set based on terminal type>)
1306: .br
1307: This mode specifies the width of the display screen.
1308: .LI "tabstop"
1309: Tabstop (INTEGER=8)
1310: .br
1311: This mode is the number of characters per tab that are displayed.
1312: Displaying a deeply indented c program may look much better if
1313: tabstop is set to something smaller than the eight default.
1314: .LI "backspace"
1315: Backspace Mode (ON/\fBOFF\fP).
1316: .br
1317: Turning on backspace mode causes backspace
1318: characters (^H) to display as moving back one column rather than as
1319: a ^H. This is very useful for viewing nroff output or manual pages,
1320: but editing the resulting text can be a bit tricky, because it is
1321: impossible to tell whether the character under the cursor is the one
1322: being displayed, one that has been overprinted, or a backspace.
1323: .LI "time"
1324: Time mode (ON/\fBOFF\fP)
1325: .br
1326: When time mode is on, EMACS will display the
1327: time of day below the mode line (the one that says EMACS and the
1328: buffer name). The time is updated every time a character is read.
1329: Using time mode when entering lots of text is expensive.
1330: .LI "display percent (4.5)"
1331: Display cursor as percent of buffer (ON/\fBOFF\fP)
1332: .br
1333: If set, emacs will display the percentage of the current buffer
1334: beyond the current cursor position on th mode line
1335: .LI "7bit_ascii (4.8)"
1336: Display only 7 bit characters (ON/\fBOFF\fP)
1337: This mode controls how characters with the high order bit set are
1338: displayed. With this mode off, they are displayed as "M-" followed
1339: by the character. With this mode ON, they are displayed as
1340: highlighted (underlined) characters. This mode is most useful for
1341: editing files used with Personal Computer word processing systems
1342: which use the high order bit for formatting control.
1343: .LI "leftmargin" (4.9)"
1344: Left most displayed Column (INT=0).
1345: In picture mode (See Section 5.3), emacs automatically scrolls the
1346: window left or right to keep the cursor on the screen. This mode
1347: allows you to examine or alter this behavior. The value of
1348: leftmargin is the left
1349: most displayed column. Setting it will cause the screen to scroll
1350: left or right. In all cases, if the cursor wanders out of the
1351: window, emacs will pick it's own leftmargin to keep it on the
1352: screen.
1353: .LE
1354: .H 2 "Interface modes"
1355: .VL 15
1356: .LI "save"
1357: Auto Save Mode (ON/\fBOFF\fP)
1358: .br
1359: If auto save mode is on, EMACS will
1360: automatically write the current buffer after savetype characters
1361: have been entered since the last save. This mode reduces the chance
1362: of disaster in the event of a crash, but can be annoying by causing
1363: a lot of writing.
1364: .LI "savetype"
1365: Save type ahead (INTEGER=256)
1366: .br
1367: If auto save mode is on, this is the
1368: number of keystrokes between saves.
1369: .LI "verbose"
1370: Verbose mode (\fBON\fP/OFF)
1371: .br
1372: When verbose mode is on, EMACS will prompt
1373: for more input when ^X, ^Q, escape, or ^U are entered. This makes
1374: it easier to keep track of where you are.
1375: .LI "keepscroll"
1376: scroll keep lines (INTEGER=0)
1377: .br
1378: This parameter specifies how many lines are to be preserved on the
1379: screen when forward page or backward page is invoked.
1380: .LI "caseless"
1381: ignore case in searches
1382: .br
1383: This mode causes case lower case characters in the search string to
1384: match either case in the buffer on all searches and query replace.
1385: .LI "mailtype"
1386: check mail interval (INT=100)
1387: .br
1388: This parameter determines the number of input characters between
1389: checks of your mailbox ($MAIL). When emacs discovers something in
1390: your mailbox, a warning is displayed at the bottom of the screen.
1391: .LI "end_newline"
1392: Behavior of ^N at end of buffer (ON/\fBOFF\fP)
1393: .br
1394: This parameter determines whether executing the ^N command in the
1395: last line of the buffer adds a new line to the buffer (mode ON) or
1396: whether it signals an error (mode OFF).
1397: .LI "usilent"
1398: Silent UNIX commands (ON/\fBOFF\fP)
1399: .br
1400: If set, this parameter causes emacs not to display the command name
1401: or output for M-$. This is useful for invoking a unix command in a
1402: macro and capturing the output without disturbing the display.
1403: .LI "noecho"
1404: Don't echo M-$ output (ON/\fBOFF\fP)
1405: .br
1406: If set, emacs will not echo the output of commands run with M-$ to
1407: the terminal. The difference between noecho and usilent is that
1408: usilent isolates commands run from emacs from the terminal
1409: completely, so that emacs does not clear the screen and does not
1410: have to redraw it when the command exits. noecho has no effect at
1411: all on commands run via M-!, but does eliminate the display of
1412: output from M-$. It is most useful when you wish to run something
1413: that will produce lots of output, capturing the output in .exec.
1414: .LI "eofnl (4.6)"
1415: Write newline at end of file. (\fBON\fP/OFF)
1416: .br
1417: This mode when on causes emacs to append a newline character to any
1418: file written by emacs from a buffer that does not end in a newline.
1419: Emacs allows you to create files that do not end in newline.
1420: Unfortunately, many unix tools get confused when reading such a
1421: file. This mode is on by default, and prevents you from writing a
1422: file that will cause troubles. For editing files which you do not
1423: want to end in a newline, turn this mode off.
1424: .LI "savelink (4.6)"
1425: Preserve links on write (ON/\fBOFF\fP)
1426: .br
1427: Turning this mode on will cause emacs to automatically
1428: write into the existing file when writing to a file with multiple
1429: links, instead of asking the user what to do in this situation.
1430: .LI "search_newline (4.6)"
1431: Newline ends search (ON/\fBOFF\fP)
1432: .br
1433: Turning this mode on causes incremental search to stop if a newline
1434: or carriage return is typed from the terminal.
1435: .LI "autoload (4.7)"
1436: Automatic macro loading (\fBON\fP/OFF)
1437: .br
1438: This mode controls the automatic loading of macro packages when an
1439: undefined macro is called. If autoload mode is on and an undefined
1440: macro by the name of <name> is called, emacs will first
1441: attempt to load
1442: .tr ~~
1443: $EMACS_LIB/<name> (resolving the environment variable $EMACS_LIB),
1444: and then try to load ~EMACS/macros/<name>. If either of these
1445: files exists and defines a macro called <name>, that macro will be
1446: called and execution will continue. Otherwise, an error message is
1447: produced. This allows macros to be
1448: loaded incrementally, only when needed. With the mode off, any
1449: attempt to call an undefined macro results in an error.
1450: .tr ~
1451: .LE
1452: .H 2 "Command modes"
1453: .VL 15
1454: .LI "fill"
1455: Auto Fill Mode (\fBON\fP/OFF)
1456: .br
1457: If this mode is on, emacs will
1458: automatically move to the next line whenever the cursor moves to the
1459: end of the line, breaking the line at a word boundary. This is very
1460: useful for entering text, as no newlines need be entered in the
1461: middle of the text.
1462: .LI "fillcol"
1463: Auto Fill Column (INTEGER=72)
1464: .br
1465: This is the character position beyond which auto fill mode will
1466: cause the line to be broken.
1467: .LI "c"
1468: C Mode (ON/\fBOFF\fP)
1469: .br
1470: This mode automatically indents for a C source
1471: file. Each line is indented with the number of tabs in the last
1472: non-comment line plus the net excess { characters over } characters
1473: in the last line. This mode is particularly useful for entering
1474: c program text.
1475: .P
1476: This mode also changes the behavior of the '}' character, so that
1477: when you type a '}' as the first non-blank character on a line, it
1478: will adjust the indentation automatically to one less than it was.
1479: Thus you can type the following kind of statement and get it to
1480: indent properly.
1481: .DS
1482:
1483: if(test) {
1484: statement;
1485: }
1486:
1487: .DE
1488: .LI "comcol"
1489: Comment Column (INTEGER=40)
1490: .br
1491: This is the column in which comments
1492: entered via M-/ begin.
1493: .LI rigid_newline
1494: rigidly insert newlines (ON/\fBOFF\fP)
1495: .br
1496: This mode causes any newline to insert a newline into the file.
1497: With this mode off (the default). a newline will not insert
1498: anything if the following line is empty, but will simply move to the
1499: next line.
1500: .LI "readonly"
1501: Read only buffer (ON/\fBOFF\fP)
1502: .br
1503: If this mode is turned on, saving the current buffer is disabled.
1504: ^X^S will complain with an error message, autosaving will not take
1505: place, and emacs will not complain if you try to exit without
1506: writing buffers.
1507: .LI "picture (4.5)"
1508: Tailor editing for two dimensional displays (ON/\fBOFF\fP)
1509: .br
1510: If set, emacs treats the buffer as an "electronic blackboard",
1511: rather than the exact contents of a unix file. The display shows a
1512: rectangular region of the blackboard through a window. Characters
1513: beyond the right margin are not displayed, but are indicated by
1514: a '!' in the right margin. The window is moved left or right to
1515: keep the cursor in the window. "leftmargin" mode gives you some
1516: explicit control over the window, but in general it is self
1517: adjusting. If the window is not at the left
1518: edge of the blackboard, then the character offset of the left edge
1519: of the display is given on the mode line, in front of the editor
1520: name.
1521: .P
1522: Picture mode changes the behavior of several basic commands to be
1523: more suitable for two dimensional editing.
1524: .VL 10
1525: .LI "^N/^P"
1526: These move to the same column in the target line, extending the
1527: target line with spaces if necessary.
1528: .LI "^F/^B"
1529: These will not move off the current line. ^B will stick at the left
1530: margin, while ^F will continue to extend the line to move to the
1531: request column.
1532: .LI "^W/^Y"
1533: These treat the region to be deleted as a rectangle, bounded by the
1534: mark and the cursor position at the corners. All text in the
1535: rectangle defined by these positions is killed by ^W. ^Y brings
1536: text back in the same way. All text deleting commands behave like
1537: ^W, in that the start and end positions of the text region to be
1538: deleted are taken as corners of a rectangle. When the text region
1539: being deleted is all on one line, behavior is identical to normal
1540: emacs, however deletion across line boundaries via commands like
1541: M-d may not do anything sensible.
1542: .LE
1543: .P
1544: Picture mode is probably most useful with nodelete mode, notabs
1545: mode, and overwrite mode all set. You can use picture mode without
1546: the others set, but the presence of tabs or control characters in
1547: the buffer may give unexpected results when you navigate in the
1548: file. This mode is particularly useful for editing fixed format
1549: tables, picture images of "typewriter art" for use with the "gc"
1550: graphics output package, and other two dimensional information.
1551: .LI "overwrite"
1552: Overwrite mode (ON/\fBOFF\fP)
1553: .br
1554: In overwrite mode, text entered will
1555: overwrite text already there. Text entered when the cursor is at
1556: the end of a line will be inserted as before. Overwrite mode may be
1557: more natural for some people when making corrections.
1558: .LI "nodelete"
1559: No deletion (ON/\fBOFF\fP)
1560: .br
1561: With this mode set, text deleted in the file is not closed up but
1562: instead is overwritten with spaces. After any deletion, the cursor
1563: reverts to the first character of the region deleted. "nodelete"
1564: mode should probably be part of overwrite mode, however overwrite
1565: mode considerably pre-dated it and was left alone for upward
1566: compatibility.
1567: .LI "notabs"
1568: Eliminate tabs (ON/\fBOFF\fP)
1569: .br
1570: With this mode set, emacs does not display tab characters in the
1571: buffer as whitespace, but instead shows them as ^I (control-i),
1572: which is the ASCII code for a tab. When you enter a tab by typing
1573: ^I or tab, emacs converts it to the proper number of spaces to come
1574: up to the next tabstop column. Emacs does not convert tabs already
1575: in the file, though there are macros that do this.
1576: .P
1577: The main use of this mode is in creating and editing fixed format
1578: information in picture mode, though it can also be useful in
1579: showing you where tabs are in your buffer.
1580: .LE
1581: .H 2 "Terminal modes"
1582: .VL 15
1583: .LI "nobell"
1584: No Bell (ON/\fBOFF\fP)
1585: .br
1586: Ordinarily, unexpected conditions, such as errors or quitting out
1587: of commands, cause the terminal bell to ring. On some adm3a
1588: terminals, This causes some kind of disaster to occur. Turning on
1589: nobell mode prevents EMACS from ringing the terminal bell.
1590: .LI "tspeed"
1591: Terminal Speed (INT=<terminal dependent>)
1592: .br
1593: This parameter is the speed of your terminal in milliseconds per
1594: character. This parameter is set whenever you enter emacs and is
1595: used in determining how to update the display most efficiently.
1596: .LI "controlify"
1597: Controlify mode (ON/\fBOFF\fP)
1598: .br
1599: When on, this mode causes a particular character (normally ^^, but
1600: settable to another character with the ctl_char described below), to
1601: act as a prefix specifying that the next character is to be
1602: interpreted as a control character. This mapping takes place at any
1603: time, not just when entering commands. Thus the sequence ^X^^s will
1604: be mapped into ^X^S, and cause the save command to be invoked. The
1605: sequence ^^q^^m typed in response to a request for a file name will
1606: be mapped into ^Q^M, which will be interpreted as asking for a file
1607: name of ^M. Controlify mode is primarily intended to allow you to
1608: enter characters which cannot be sent transparently from your
1609: terminal to emacs. The most frequent examples are ^S and ^Q, which
1610: cannot be sent by some terminals and some local area networks.
1611: By setting controlify mode, you can send these characters with ^^s
1612: and ^^q.
1613: .LI "ctl_char (4.6)"
1614: Controlify Character (INT=30)
1615: .br
1616: This parameter sets the value of the character used when in controlify
1617: mode to indicate that the next keystroke should be interpreted as a
1618: control character. It is the ascii value of the character to be
1619: used.
1620: .LI "flow_lim (4.6)"
1621: Flow Control Limit (INT=0)
1622: .br
1623: This parameter enables the use of xon/xoff flow control during
1624: output to control the rate of output to the terminal. Emacs
1625: normally turns xon/xoff flow control off to allow ^S and ^Q to be
1626: passed to emacs to be used in specifying commands. If flow_lim is
1627: non-zero, then whenever more than flow_lim characters are sent to
1628: the terminal at once, xon/xoff flow control will be temporarily
1629: enabled to allow the terminal to send ^S to request that unix stop
1630: output. xon/xoff flow control is disabled when output is complete.
1631: The only effect you will see is that you cannot type ^S or ^Q ahead
1632: while emacs is updating the screen. Normally, emacs supplies
1633: sufficient padding to allow it to run without xon/xoff flow control,
1634: however for some terminals at high speeds xon/xoff flow control is
1635: required. In this case only, set flow_lim to a number somewhat
1636: larger than the terminal's character buffer (typically 32, 64, or
1637: 128). In some cases it may be desirable to set up the terminal to
1638: always use ^S/^Q for flow control. This can be done by setting
1639: flow_lim to -1 (escape - ^X^M flowlim). If you do this, you will
1640: not be able to type ^S or ^Q from the keyboard and must use
1641: controlify mode to do so.
1642: .LE
1643: .H 2 "Specifying Default modes for a File"
1644: You can specify the modes to be used while editing a particular file
1645: by putting the string "EMACS_MODES: " somewhere in the first 10
1646: lines of the file. The text on the same line following EMACS_MODES:
1647: will be taken as names of modes to set on or off. A mode name
1648: preceded by '!' will be set off, while mode names just listed will
1649: be set on. If '=' immediately follows a mode name, then the
1650: characters immediately following the '=' will be taken as the value
1651: for the mode name. Any text on the line that does not correspond to a mode
1652: name will be ignored. Thus the line:
1653: .SP
1654: /* EMACS_MODES: !fill c, comcol=43 */
1655: .SP
1656: in a c source file will set c mode on, fill mode off, and set the
1657: column for starting comments to 43. These modes are
1658: set whenever the file is read, and
1659: whenever you switch buffers.
1660: .H 1 "Getting started"
1661: When EMACS is invoked, it does a number of things to set up for
1662: your editing session, These include finding out the type of your
1663: terminal, processing an initialization file that allows you to
1664: customize EMACS for your needs, and processing command line
1665: arguments.
1666: .H 2 "Setting your Terminal Type"
1667: Emacs must know what type of terminal
1668: terminal that you are using in order to know the appropriate
1669: control commands to display text on your screen.
1670: The terminal type is taken from the shell variable $TERM. To make it
1671: work, you must set the value of TERM in your .profile, and export it.
1672: .P
1673: On some systems, there is a utility program called "ttype" which
1674: figures out your terminal type for you. It works by sending an
1675: escape sequence to your terminal and testing for a response.
1676: Thus the lines:
1677: .SP
1678: export HOME PATH MAIL LOGNAME LOGTTY TERM
1679: .br
1680: TERM=`ttype`
1681: .SP
1682: will set the terminal type correctly if ttype is available, and if
1683: your terminal responds correctly. If TERM is not set or
1684: is set to an unrecognizable type, EMACS will prompt for terminal
1685: type, however the prompting message may be formated oddly, since
1686: at this point emacs will not know how to control your terminal.
1687: You can also set your terminal type by putting a M-t (Set terminal
1688: type) command in your initialization file, as described in the
1689: following section.
1690: .P
1691: Most terminals commonly used at Bell Labs are acceptable for use
1692: with emacs. Support for other terminals could easily be added if needed.
1693: If you need support for an unsupported terminal, either consult the
1694: document ~EMACS/term_support for a description of how to do it
1695: yourself, or contact ihnss!warren for details.
1696: .P
1697: There are some special problems with certain terminals or
1698: particular access arrangements connecting your terminal to emacs
1699: that you may run into:
1700: .VL 25
1701: .LI "adm3a:"
1702: There are two "features" of the adm3a terminals that sometimes cause
1703: trouble in EMACS. One of the internal switches on that terminal is
1704: labeled space/advance. That switch must be in the space position for
1705: EMACS to work properly. A second problem is that many of these
1706: terminals are set up to use one of the "undefined" pins of the
1707: rs-232 interface for some internal diagnostic. This causes the
1708: terminal to go wild every time it receives a bell character when
1709: connected to a 1200 baud modem (which uses the same pin for
1710: something else). If this happens to you in EMACS, set nobell mode,
1711: which will prevent EMACS from sending bell characters to your
1712: terminal. A better and more permanent solution is to modify the
1713: terminal to disconnect
1714: this lead, use a cable that does not carry the undefined signals
1715: between the modem and the terminal.
1716: .LI "TTY5620 or Blit:"
1717: The Blit or Teletype 5620 terminals can be used in a number of
1718: different ways. The terminal types "blit" and "5620" will work well
1719: on a stand-alone blit or 5620. The only difficulty is that the
1720: terminal will not transmit ^S and ^Q, requiring you to use
1721: controlify mode to send these characters (as described below).
1722: Emacs will also run in a layer defined on the terminal.
1723: Emacs should discover the size of the window automatically, but
1724: will not discover it if you reshape the window while emacs is
1725: running. The terminal type "layer" will work with the layer terminal
1726: driver on the blit, but is very crude and buggy. The terminal type
1727: 5620 will work from a layer inside of the TTY 5620, with the above
1728: limitation. The hp and vitty emulators will work with emacs on both
1729: the blit and 5620.
1730: .P
1731: There are several improved terminal emulators that work better with
1732: emacs than the standard hp emulator or the straight 5620 layers
1733: terminal. There is an improved hp emulator that will transmit ^S
1734: and ^Q. The "netty" terminal emulator is widely available for both
1735: the blit and the 5620. It works well with emacs, and works with a
1736: macro package that can be loaded into emacs to allow you to
1737: position the cursor with the mouse and to do a certain amount of
1738: cut and paste style editing. The "emacsterm" emulator is available
1739: for the 5620 in experimental tools, and also works with an emacs
1740: macro package to provide mouse oriented editing.
1741: .LI "VT100 or hp2621B:"
1742: Both of these terminals work fine with emacs when run at low
1743: speeds, but at 9600 baud, these terminals do not keep up with the
1744: flow of characters. To use either of these terminals at 9600 baud,
1745: you should set "flow_lim" mode to 32 in emacs, and avoid typing while the
1746: display is being recreated. In addition, some of the VT100
1747: compatible terminals will not send ^S or ^Q to emacs and must be
1748: used with controlify mode.
1749: .LI "Local Area Networks:"
1750: Some local area networks use ^S and ^Q for flow control, and thus
1751: you will not be able to send these characters directly to emacs.
1752: You can get around this by using controlify mode as described in
1753: the previous sections. You can make this less awkward on terminals
1754: with user programmable function keys by setting some of the
1755: function keys to send the character sequences necessary to get ^S
1756: and ^Q.
1757: .LE
1758: .H 2 "Initialization file.
1759: When you start emacs, it consults
1760: initialization file that allows you to initialize the various modes
1761: the way that you want them. This file is called ".emacs_init" and
1762: should be put in your home directory. The file is read as a
1763: keyboard macro, and thus should contain \fIexactly\fP what you
1764: would type from the terminal in order to set it up. Thus the file:
1765: .tr ~~
1766: .SP
1767: .DS
1768: ^U^X^Mfill
1769: ^X^Mc
1770: ^X^L~EMACS/macros/loader
1771: .DE
1772: .SP
1773: sets 'c' mode, unsets fill mode, and loads the loader macro
1774: package. If you do not have a .emacs_init file, emacs will run the
1775: standard initialization file for your system, which you can examine
1776: by looking at the file ~EMACS/.emacs_init. It will not run both by
1777: default, but you can call for the default initialization file to be
1778: run from your private file by placing ^X^I~EMACS/.emacs_init in
1779: your initialization file at the point at which you want the system
1780: initialization to be done.
1781: You can also cause initializations to take place by command line
1782: arguments (see below).
1783: .tr ~
1784: .H 3 "Command line arguments"
1785: Emacs accepts a number of arguments on the command line that effect
1786: processing. These are:
1787: .VL 10
1788: .LI "-i"
1789: Emacs interprets the next argument as the name of an initialization file to
1790: run in addition to the standard initialization file (Yours or the system's).
1791: The specified file is run \fIafter\fP .emacs_init.
1792: .LI ".i"
1793: Emacs interprets the next argument as the name of an initialization file to
1794: run \fIinstead\fP of the standard file.
1795: .LI "+n"
1796: Emacs moves to line n of the specified file after it is read in.
1797: .LI "<filename>
1798: The last argument on the command line should be the name of the
1799: file to be edited. This file (if present) is read into the buffer
1800: Main. If no filename is specified, emacs puts you in the buffer Main
1801: with no associated file.
1802: .H 2 "Helpful hints"
1803: This editor is very easy to use, once you know a few of the basic
1804: commands. Here are some tips for making the best use of emacs.
1805: .AL
1806: .LI
1807: Learn a few of the basic commands at a time. You can accomplish a
1808: lot with just the basic commands.
1809: .LI
1810: EMACS tries to be reasonably efficient about the refreshing of the
1811: screen. Some sequences, however, will cause lots of text to be
1812: redisplayed. While you can insert anything into the middle of a buffer by
1813: typing it, it is much better to open up some lines by using ^O
1814: where you want to insert, insert, and then kill unneeded lines.
1815: .LI
1816: Use M-? when in doubt about a command. The explanations are brief, but
1817: should be sufficient to tell you what you want to know.
1818: .LI
1819: Like most editors, EMACS maintains a local buffer, so that changes made do
1820: not go into the file until the next write. Type ^X^S reasonably frequently
1821: so as to avoid being wiped out by machine crashes, editor bugs, or other
1822: unpredictable events.
1823: .LI
1824: Because EMACS tries to avoid unnecessary refreshing of the screen,
1825: it will get confused if characters are sent to your terminal from
1826: some other program while running EMACS, such as a "background"
1827: program, or by a write command from another user. If you suspect
1828: that the display does not correspond to the buffer that you are
1829: editing, type ^L to refresh the screen. After typing ^L, the screen
1830: will match the buffer being edited.
1831: .LE
1832: .H 2 "Limitations of the editor"
1833: There are some limits that you may encounter:
1834: .BL
1835: .LI
1836: Each line can hold at most 512 characters.
1837: .LI
1838: Each buffer can hold a maximum of approximately 15,000 lines.
1839: .LI
1840: You can have at most 12 buffers.
1841: .LI
1842: The kill stack contains
1843: the 8 most recent deletions, or a total of 256K characters.
1844: .LI
1845: Filenames are limited to 128 characters.
1846: .LE
1847: .H 2 "Recovering from various problems."
1848: Because EMACS puts your terminal in "raw" mode, it does not respond
1849: to interrupt and quit characters the way that most unix programs
1850: do. If somethings goes wrong with emacs, you can usually stop it
1851: with BREAK (typing ^Z to exit from emacs in response to the
1852: message). You may have to kill it from another terminal or log
1853: out.
1854: .P
1855: If emacs runs into internal trouble, or if you kill emacs or log
1856: out while running emacs, it will try to save your buffers before
1857: terminating. The buffers are saved in the files emacs0-emacs11 in
1858: your home directory. You will get mail describing what files are
1859: there from emacs after this happens, though if you do not clean up
1860: these files, they will continue to appear in the message each time
1861: you hang up on or kill an emacs process.
1862: .H 1 "DIRED"
1863: The program DIRED (DIRectory EDitor) is a version of emacs for
1864: editing directories.
1865: DIRED takes an argument which is the name of a directory, and
1866: displays the result of ls -al executed on that directory. Dired
1867: allows you to edit the resulting buffer using most of the normal
1868: commands. You may edit it by overwriting the protection mode,
1869: owner, or group fields, or by deleting entries, as discussed below. In
1870: order to facilitate your editing of the fixed format data in the
1871: directory listing, Dired puts you in "overwrite" mode by default, so
1872: that characters that you type overwrite what is there rather than
1873: inserting into it.
1874: .P
1875: The changes that you indicate this way are not made immediately, but
1876: are indicated by the letters 'D' (file deleted) 'M' (modes modified)
1877: or 'O' (owner or group changed) at the left end of the file entries
1878: modified. When you try to save the buffer or exit, Dired asks you
1879: if you want to make your changes permanent and then does them.
1880: .P
1881: Most of the usual emacs commands work in Dired just like in Emacs
1882: with a few exceptions:
1883: .VL 15
1884: .LI "^D, ^?, and ^K"
1885: These commands do not delete any text, but simply mark the file
1886: designated on the current line for deletion.
1887: .LI "d or D"
1888: These characters mark the current file for deletion when typed at
1889: the beginning of a line, and otherwise just overwrite what is there.
1890: .LI "u or U"
1891: These characters remove the Deleted mark from files when typed at
1892: the beginning of a line, and otherwise just overwrite what is there.
1893: .LI "e"
1894: When typed at the beginning of a line, this causes dired to examine
1895: the directory entry corresponding to that line. If the entry is a
1896: file, dired creates a new buffer and reads it in, allowing you to
1897: examine it just like in emacs. When you enter ^Z, Dired returns you
1898: to the directory. If the entry is a directory, Dired creates a
1899: buffer and puts a directory listing of that directory in it,
1900: allowing you to edit this just directory. This feature provides a
1901: very convenient way to scan through a directory structure.
1902: .LE
1903: .P
1904: Ordinarily, the buffer listing for dired is created with a "ls -al"
1905: command. You can specify additional options for the display by
1906: giving dired an argument beginning with a "-" to specify options.
1907: Thus "dired~-t~/usr/bin" will invoke dired on /usr/bin with a
1908: listing sorted in time order.
1909: .P
1910: Dired provides a very convenient way to scan through and make
1911: changes to directories. It is particularly useful for cleaning up
1912: directories that may have files that you have not used for some time
1913: in them.
1914: .P
1915: Dired can be confused if you edit the filename of the entries, or
1916: succeed in inserting or deleting characters in the entries. It is
1917: not very robust to such failures, and you are advised not to modify
1918: the format of entries. If you have somehow garbled a buffer with a
1919: directory listing in it, you should probably kill the buffer so that
1920: Dired will not try to update that directory from the garbled listing
1921: when you try to exit.
1922: .H 1 EXPERIENCE
1923: The author originally wrote EMACS in 1979 as an aide to his own work of
1924: programming and memorandum composition. EMACS has been widely
1925: available inside of Bell Laboratories through the Experimental Tools
1926: facility, and through the author's own distribution efforts. EMACS
1927: now part of the AT&T Toolchest package and is available commercially
1928: to anyone paying the nominal fee for it. The following section
1929: describes observations of the author and others on 6 years of
1930: experience with Emacs.
1931: .H 2 "Feature Use"
1932: The most commonly used "feature" of EMACS is simply the ability to
1933: enter text and see the result. The simple cursor movement commands
1934: appear to be much more frequently used than the more complicated
1935: commands, such as those moving forward or backward by sentences.
1936: .P
1937: The following is a summary of the user reaction to some of the
1938: unique features of EMACS.
1939: .AL
1940: .LI "Multiple Buffers"
1941: .br
1942: The ability to maintain several editing buffers at the same time
1943: is widely used for many purposes. These include examining several
1944: source files while making modifications, holding source, compiler
1945: output, and program output while debugging, and holding the output
1946: of the spell utility while scanning a document for misspelled words.
1947: The availability of multiple buffers allows the user to manage
1948: several different tasks, such as writing a program, editing a
1949: memorandum, and helping a friend locate a system problem, concurrently.
1950: .LI "Two Window Mode"
1951: .br
1952: Two window mode is less heavily used than some of the other
1953: features, but appears to be quite useful for a variety of tasks.
1954: These include viewing a buffer containing declarations at the same
1955: time that a program is being entered in the second window, and
1956: viewing the output of the spell program at the same time that the
1957: document is being edited. The fact that only one of the two
1958: displays is actively maintained does not seem to be a problem, nor
1959: does the limitation of only two display windows. Few users have
1960: objected to these limitations, though this may only indicate that
1961: users are grateful enough for what Emacs does provide that they have
1962: not run into them.
1963: .LI "Incremental Search"
1964: .br
1965: With a high speed terminal, incremental search seems to be very
1966: effective. The ability to quickly move from one occurrence of a
1967: string to the next seems to meet most user's needs. With
1968: significantly less than 9600 baud communication, the amount of
1969: re-display created by incremental search becomes bothersome, and
1970: the regular expression search is preferred. The fact that
1971: incremental search does not "wrap around", seems to be a significant
1972: problem to many users.
1973: .LI "C mode and Fill mode"
1974: .br
1975: These two modes provide customized facilities for editing certain
1976: kinds of files. The user reaction to these is mixed. Some users
1977: make extensive use of these, while others have their own styles for
1978: entering memorandum or program source and do not use these modes.
1979: They are a very small part of EMACS, and as such are worthwhile even
1980: if they are not extensively used.
1981: .LI "Line Numbers"
1982: .br
1983: The display of the line number (lnumb mode) is one aspect of EMACS
1984: that was not taken from the M.I.T. version. This appears to be
1985: extremely useful for use with UNIX, primarily because of the
1986: widespread use of line numbers to indicate position within a file.
1987: Line numbers also serve to provide the user with some feedback as to
1988: what part of the buffer is currently being displayed.
1989: .LI "Macros"
1990: The macro facility was built up over time, and only recently has
1991: become a programming environment capable of being used by a wide
1992: variety of users. The initial macro language was powerful but
1993: extremely cryptic. Nevertheless, hundreds of macros were built, ranging from
1994: simple commands that merely combine several basic commands to
1995: self-contained editing systems making use of complex control flow
1996: features. Some of the more significant ones include a package for
1997: correcting spelling errors, Several packages that compile C code and
1998: step through the error messages, Several mail handling packages, and
1999: Several packages implementing interfaces to mouse-equipped
2000: terminals.
2001: .P
2002: In retrospect, our experience supports the conclusions of Richard
2003: Stallman (The author of the original Emacs), that the "right" way to
2004: build a powerful editor is to build a powerful programming
2005: environment and build the user interface of the editor on top of it.
2006: .LI "Picture Mode"
2007: Picture mode is another feature that was originally unique to this
2008: implementation. It was inspired by the Two-Dimensional editor
2009: 2ded, and by an electronic debate on whether screen editors should
2010: present the file as a sequence of characters or as a two dimensional
2011: blackboard. Both are useful abstractions, and it was not difficult
2012: to provide both views given the structure of Emacs. Picture mode
2013: has been widely used for editing tables and other fixed format
2014: information. It is also sometimes convenient for mouse based
2015: interfaces.
2016: .LE
2017: .H 2 "Human Interface Observations"
2018: There are several controversial aspects of the interface that emacs
2019: presents to users.
2020: .VL 15
2021: .LI "Modeless Editing:"
2022: The characteristics which most clearly distinguishes emacs style
2023: editors from others is that lack of distinct modes for text
2024: insertion and entering of commands. This is also the most
2025: controversial feature. There have been many studies on moded and
2026: modeless editors in the 10 years since the first Emacs editors
2027: got significant use. Most conclude that in spite of strong
2028: preferences among users for one style or the other, neither is
2029: clearly superior. Also, in spite of feelings of users of both
2030: modeless and moded editors that doing something in the wrong mode
2031: would be a significant source of errors, the data do not show this as
2032: a large problem.
2033: .P
2034: Our feeling on this issue is that there are different editing styles
2035: for modeless or moded editing. With a moded editor, you think of
2036: editing as a series of commands, each of which changes the file in
2037: some way. With modeless editing, you tend to work more in the mode
2038: of marking up a document with a red pencil, by moving to each
2039: problem and re-typing whatever is wrong. Modeless editing seems
2040: natural in conjunction with a pointing device and menu interface,
2041: and has been used effectively on many personal computer and word
2042: processor editors this way.
2043: .LI "Control Characters"
2044: The use of control characters for editing commands in emacs is an
2045: unavoidable consequence of modeless editing. A conscious decision
2046: was made in emacs to avoid the use of special keys on the keyboard,
2047: such as function and arrow keys. The rational for this was to avoid
2048: requiring users to locate such keys, which appear in different
2049: places on every terminal. The result is that touch typists can use
2050: emacs without ever having to look at the keyboard, which is
2051: difficult if you must locate the special keys.
2052: .P
2053: The interface seems to work quite well for frequent users, however
2054: casual users have trouble remembering which characters do what.
2055: Many users with programmable function keys on their terminals have
2056: programmed and labeled them to send useful emacs commands. The
2057: conclusion that can be drawn is that it is nice to be able to touch
2058: type all of the commands, and for many users it is desirable to be
2059: able to use the special function keys on many terminals for editing.
2060: .LE
2061: .H 2 "Performance"
2062: While computer resources are not as expensive as they once were,
2063: they are far from free. An interactive screen editor such as EMACS
2064: consumes more in computer resources than a conventional editor.
2065: EMACS was designed to be as efficient as possible, some price must
2066: be paid for the benefits gained.
2067: .P
2068: The Processor time consumption of EMACS is comparable to the UNIX
2069: editor for most "commands", including reading and writing files,
2070: searching, and substitution. The major discrepancy in performance
2071: comes in entering text. In entering text, EMACS consumes
2072: about 3 times as much processor time as the UNIX editor.
2073: .P
2074: If we examine how each editor uses its time, we see that almost all
2075: of the time spent by the UNIX editor is spent in the UNIX operating
2076: system reading characters. About two thirds of the time spent in
2077: EMACS is spent reading and writing, while the remaining third is
2078: spent re-creating the display. EMACS uses almost twice as much UNIX
2079: operating system processor time, because it is re-writing the
2080: display after each character is typed, in addition to reading the
2081: characters. In addition, EMACS spends a significant amount of user
2082: process time figuring out how to most efficiently re-display the
2083: screen.
2084: .P
2085: While EMACS does consume more time editing than does the UNIX
2086: editor, the processor time spent editing does not appear to be a
2087: significant problem. Measurements of CPU consumption of emacs made
2088: on VAX 11/780, 3B20S, and PDP 11/70 systems each indicate that an
2089: emacs user consumes on average about .01 second of cpu time per
2090: character typed, and about 1% of the processor over the period of an
2091: editing session. These rates suggest that a substantial number of
2092: users can be accommodated on most systems.
2093: .H 1 CONCLUSIONS
2094: The EMACS editor provides an effective means of using a high-speed
2095: display terminal for text editing. EMACS provides a variety of
2096: unique features that seem to be very useful in editing. User
2097: reaction indicates that using EMACS has improved their productivity,
2098: however there are no quantitative measurements of this effect.
2099: .P
2100: EMACS uses more computing resources than the standard UNIX editor,
2101: however the resources utilized do not appear to be a serious
2102: problem. Emacs has been used effectively on many different machines
2103: without serious difficulties in performance.
2104: .P
2105: EMACS was written by the author as a tool for his own work, but is
2106: available to anyone desiring a copy. There are no currently known
2107: bugs, however there may be undiscovered problems. The author is
2108: interested in user reaction to EMACS and in reports of problems,
2109: however, the author's job
2110: does not include supporting EMACS, and thus the author does not
2111: promise any prompt response to suggestions or trouble reports.
2112: .SG UNIX
2113: .SK
2114: .tr ~~
2115: .nr Hu 1
2116: .nr Hc 1
2117: .HU "APPENDIX -- EMACS Command Summary"
2118: .SP 2
2119: .nf
2120: EMACS version 4.9 Date: Thu Mar 28 14:17:56 CST 1985
2121:
2122: ^@: sets the mark at the cursor position
2123: ^A: moves to the beginning of the line
2124: ^B: moves back one character
2125: ^C: capitalizes the current character
2126: ^D: deletes forward one character
2127: ^E: moves to the end of the line
2128: ^F: moves forward one character
2129: ^G: quits from any command in progress
2130: ^H: deletes backward one character
2131: ^I: inserts a tab
2132: ^J: opens a new line and moves to the beginning of it if the
2133: next line is non-empty, otherwise down one line
2134: ^K: kills to end of line (with argument, kills multiple lines)
2135: ^L: refreshes the screen
2136: ^M: opens a new line and moves to the beginning of it if the
2137: next line is non-empty, otherwise down one line
2138: ^N: moves down one line
2139: ^O: opens up a new line
2140: ^P: moves up one line
2141: ^Q: quotes the next character
2142: ^R: starts a reverse search
2143: ^S: starts a search
2144: ^T: transposes the next two characters
2145: ^U: multiplies the argument by 4
2146: ^V: moves to the next page
2147: ^W: kills the current region (between cursor and mark)
2148: ^X: is a prefix for more single character commands,
2149: type character or '*' for all
2150: ^Y: restores last killed text
2151: (leaves cursor and mark around it)
2152: ^Z: exits one level
2153: ^[: makes the next character a meta character
2154: ^]: makes a local variable of a macro invocation the argument to the
2155: next command
2156: ^^: causes the last returned result to become the argument
2157: : is self inserting and check for automatic word wrapping
2158: -: is self inserting unless part of a numeric argument
2159: .: is self inserting and check for automatic word wrapping
2160: 0: is self inserting unless part of a numeric argument
2161: 1: is self inserting unless part of a numeric argument
2162: 2: is self inserting unless part of a numeric argument
2163: 3: is self inserting unless part of a numeric argument
2164: 4: is self inserting unless part of a numeric argument
2165: 5: is self inserting unless part of a numeric argument
2166: 6: is self inserting unless part of a numeric argument
2167: 7: is self inserting unless part of a numeric argument
2168: 8: is self inserting unless part of a numeric argument
2169: 9: is self inserting unless part of a numeric argument
2170: }: is self inserting, and re-adjusts indentation in C mode
2171: ^?: deletes backward one character
2172: M-^H: deletes the last word
2173: M-^L: re-displays with current line at top of page
2174: M-^M: mails the current buffer
2175: M-^Q: returns the next input character (in a macro)
2176: M-^R: regular expression query replace
2177: M-^S: regular expression search
2178: M-^X: executes argument 0 as a character command.
2179: M-^Z: suspends emacs
2180: M-^]: assigns the result of the next command to a macro local variable
2181: M- : sets the mark at the cursor position
2182: M-!: gets and executes a shell command
2183: M-": auto Fills the whole buffer
2184: M-$: executes a command, saving the output in buffer .exec
2185: M--: is self inserting unless part of a numeric argument
2186: M-/: starts a comment
2187: M-0: is self inserting unless part of a numeric argument
2188: M-1: is self inserting unless part of a numeric argument
2189: M-2: is self inserting unless part of a numeric argument
2190: M-3: is self inserting unless part of a numeric argument
2191: M-4: is self inserting unless part of a numeric argument
2192: M-5: is self inserting unless part of a numeric argument
2193: M-6: is self inserting unless part of a numeric argument
2194: M-7: is self inserting unless part of a numeric argument
2195: M-8: is self inserting unless part of a numeric argument
2196: M-9: is self inserting unless part of a numeric argument
2197: M-:: maps a character to a command
2198: M-<: moves to top of file
2199: M->: moves to bottom of file
2200: M-?: explains the next character
2201: M-E: expands an environment variable and returns the result on the kill stack.
2202: M-\: converts its argument to a character and inserts it
2203: M-_: underlines the next word
2204: M-a: moves to beginning of sentence
2205: M-b: moves back one word
2206: M-c: capitalizes the next word
2207: M-d: deletes the next word
2208: M-e: moves to End of Sentence
2209: M-f: moves forward one word
2210: M-g: moves to a specific line (its argument)
2211: M-l: converts the next letter to lower case
2212: M-m: displays active modes
2213: M-p: puts the current region in the kill buffer without killing it
2214: M-q: quotes the next character and adds the 0200 bit
2215: M-r: starts query replace
2216: M-s: gives EMACS statistics
2217: M-t: prompts for terminal type
2218: M-u: undoes the last significant text modification
2219: M-v: moves back one page
2220: M-w: puts a wall chart of explanations in the buffer
2221: M-x: calls a macro by name
2222: M-y: replaces the last restore() with the next text in
2223: the kill stack.
2224: M-z: kills emacs with a core dump (for debugging)
2225: M-{: enters a command sequence (in a macro)
2226: M-}: exits one level
2227: M-~: marks a buffer as being unmodified (up to date)
2228: M-^?: deletes the last word
2229:
2230: Control-X commands:
2231:
2232: ^X^A: accesses the argument list to emacs
2233: ^X^B: changes Buffers (Change to * lists active buffers)
2234: ^X^C: exits gracefully
2235: (after asking whether or not to save the buffer)
2236: ^X^D: changes the working directory
2237: ^X^E: calls emacs recursively taking input from the terminal
2238: ^X^F: edits a file in its own buffer
2239: (if file has been read into a buffer, moves to it)
2240: ^X^G: sends an interrupt signal to a sub-process in the current buffer
2241: ^X^I: re-directs input from a file
2242: ^X^K: kills a buffer
2243: ^X^L: loads a file full of macro definitions
2244: ^X^M: sets mode from argument (prompts for mode name)
2245: and string if necessary
2246: ^X^N: changes the buffer or file name
2247: ^X^O: switches between windows
2248: ^X^Q: returns the character under the cursor (in a macro)
2249: ^X^R: reads a new file
2250: ^X^S: saves the buffer in the current file (if modified)
2251: ^X^T: prompts for a buffer name and inserts the text between the
2252: cursor and the mark into the named buffer.
2253: ^X^U: updates the display and delays for a specified time
2254: ^X^V: puts the current version on the kill stack.
2255: ^X^W: writes a new or old file
2256: ^X^X: exchanges the mark and the cursor
2257: ^X^^: causes the current window to grow one by line
2258: ^X!: begins a case statement (in a macro)
2259: ^X#: reads or writes global variables
2260: ^X%: exchanges the top of the kill stack with another item
2261: ^X&: compares two strings
2262: ^X(: starts a keyboard macro
2263: ^X): ends a keyboard macro
2264: ^X+: causes the next entry to the kill stack to append to the previous entry
2265: ^X-: pops the kill stack
2266: ^X1: exits two window mode
2267: ^X2: enters two window mode
2268: ^X<: pushes a string from the tty or macro text into the kill stack
2269: ^X=: gives statistics about the buffer
2270: ^X>: duplicates an item on the kill stack
2271: ^X@: prompts the user with a string from the kill stack and returns the result.
2272: ^XB: puts the buffer name into the kill stack
2273: ^XE: executes the keyboard macro
2274: ^XF: puts the file name into the stack
2275: ^XL: makes the next character a meta character
2276: ^XT: traces the next command.
2277: ^X^: enters a "while" loop (in a macro)
2278: ^Xd: defines macros from the current buffer
2279: ^Xg: moves to a screen position (arg=128*y+x);
2280: ^Xk: sets the encryption key for file reading and writing
2281: ^Xm: sets mode from argument (prompts for mode name)
2282: and string if necessary
2283: ^X|: begins a conditional execution sequence (in a macro)
2284: ^X~: performs arithmetic or logical operations (in a macro)
2285: .fi
2286: .SK
2287: .NS ""
2288: All Supervision Lab 5523
2289: .NE
2290: .TC
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.