-
Notifications
You must be signed in to change notification settings - Fork 86
/
Copy pathemacs.147
executable file
·9203 lines (7470 loc) · 435 KB
/
emacs.147
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
This file documents the EMACS editor. -*-Text-*-
Don't edit this file! It is produced by SCRIBE from another file.
Be sure to run TAGS over this file after you make it with SCRIBE.
EMACS Node: Top, Up: (DIR)
The EMACS Editor
This is an INFO-ized version of the EMACS reference manual.
* Menu:
* Intro:: An introduction to this documentation.
* Glossary:: Definitions of important concepts, and cross refs.
* CommandIndex::Brief info on all commands ordered by topic,
and cross refs.
* LibCat:: Brief info on available libraries.
* VarIndex:: Brief info on meanings of specific variables.
* Screen:: How to interpret what you see on the screen.
* Characters:: EMACS's character sets; usage from deficient
(ie, standard ASCII or upper case only) keyboards.
* Basic:: The most basic editing commands.
Important General Concepts
* Arguments:: Giving numeric arguments to commands.
* M-X:: Issuing long-named "extended" commands.
* Subsystems:: Commands that themselves read commands in a distinctive
language, such as INFO and Backtrace.
* Recursive:: Recursive editing levels; situations when you are
using ordinary EMACS commands but editing something
special-purpose (such as a message to send).
* Exiting:: Exiting EMACS, subsystems, or recursive editing levels.
* Help:: Commands for asking EMACS about its commands.
Important Text-Changing Commands
* Mark:: The mark: how to delimit a "region" of text.
* Killing:: Killing text.
* Un-killing:: Recovering killed text. Moving text.
* Copying:: Other ways of copying text.
* Search:: Finding or replacing occurrences of a string.
* Text:: Commands and modes for editing English.
* Fixit:: Commands especially useful for fixing typos.
* Abbrev: (WORDAB), How to define text abbreviations to reduce
the number of characters you must type.
Larger Units of Text
* Files:: All about handling files.
* Buffers:: Multiple buffers; editing several files at once.
* Display:: Controlling what text is displayed.
* Windows:: Viewing two pieces of text at once.
* Narrowing:: Commands for narrowing view to part of the buffer.
* Pages:: Commands for dealing with pages in files.
* Replace:: Repetitive search and replace commands.
* TECOSearch:: TECO search strings.
Editing Programs
* MajorModes:: Text mode vs. Lisp mode vs. MIDAS mode ...
* Programs:: Commands and modes for editing programs.
* Tags: (TAGS), The Tags subsystem remembers the location of each
"tag" or function definition in one or more files,
and allows you to go directly to any of them.
Customization
* MinorModes:: Some useful options you can turn on and off.
* Libraries:: Loading additional libraries of commands.
* Variables:: Named variables: what they do and how to use them.
* Syntax:: The syntax table.
* FS Flags:: FS flags: TECO's variables.
* Init:: Init files and EVARS files.
* Locals:: Local modes lists in files.
* KBDMAC:: Making an abbreviation for a sequence of commands.
* Minibuffer:: Executing small TECO programs interactively.
Recovery from Lossage
* Quitting:: Quitting and Aborting.
* Lossage:: What to do if EMACS is hung.
* Undo:: Undoing a command that destroyed your text.
* Journals:: Journal files save all your commands in case of crash.
* Bugs:: How and when to report a bug.
Other Available Libraries
* PICTURE:: Subsystem for editing pictures made out of characters.
* Sort:: Commands for sorting part of the buffer.
* SLOWLY: (SLOWLY), A package of macros for people using slow
terminals.
* RENUM: (RENUM), A package of macros for renumbering sections,
references, equations, etc. in manuscripts.
* DOCOND: (DOCOND), Subsystem for "assembly conditionals"
in documentation files.
* RMAIL: (RMAIL), Subsystem for editing mail.
* Babyl: (Babyl), Babyl is, like RMail, an EMACS mail subsystem.
It differs from RMail in some respects, in
particular: it runs on TENEX and TWENEX.
* LEDIT: (LEDIT), Interface between EMACS and MacLisp.
* INFO: (INFO), Subsystem for reading documentation files.
* CLU: (ECLU), Subsystem containing CLU mode, a major mode.
* PL1: (EPL1), Subsystem containing PL1 mode, a major mode.
* PASCAL: (EPASC), Subsystem containing PASCAL mode, a major mode.
* TDEBUG: (TDEBUG), EMACS macro 2 window real-time debugger.
* Internals: (CONV), EMACS internals. Customization. Init files.
* TMACS: (TMACS)Top, Assorted useful commands and subroutines.
Here are some other nodes which are really inferiors of the ones
already listed, so you can get to them in one step:
* ModeLine:: How to interpret the mode line at top level.
* MMArcana:: Hows and whys of MM commands.
* Mail:: Reading mail.
* Visiting:: How to visit a file for editing.
* ListDir:: How to list a directory.
* Revert:: How to cancel some changes you have made.
* AutoSave:: Protection from system crashes.
* CleanDir:: Deleting piled up old versions of files.
* DIRED:: Deleting files by "editing your directory".
* Filadv:: Miscellaneous file commands.
* DirComp:: Comparing two directories.
* Compile:: M-X Compile: compile the visited file.
* Indenting:: Indentation commands for programs.
* Matching:: Automatic display of how parens balance.
* Lisp:: Commands for Lisp code.
* Lists:: Commands for moving over lists.
* Defuns:: Commands for top level lists (defuns).
* Comments:: Commands that understand comments in code.
* Grinding:: Reformatting Lisp code.
* MIDAS:: Commands for assembler language code.
* Other Langs:: Programming languages other than Lisp and assembler.
* Words:: Commands for moving over words.
* Sentences:: Commands for sentences and paragraphs.
* TextIndent:: Commands for indenting text.
* Filling:: Commands for filling and centering text.
* Case:: Case conversion commands.
* NoLowerCase:: What to do on terminals with no lower case.
* Fonts:: Font change commands.
* Underlining:: Underlining commands.
* SCRIBE:: Editing SCRIBE input files.
* Dissociation::Dissociated Press.
* PAGE Lib: PAGE. Macros for editing only one page at a time.
* Printing:: Printing terminals.
EMACS Node: Intro, Previous: Top, Up: Top, Next: Glossary
Introduction
You are about to read about EMACS, an advanced, self-documenting,
customizable, extensible real-time display editor.
We say that EMACS is a display editor because normally the text being
edited is visible on the screen and is updated automatically as you type
your commands. *Note Display: Screen.
We call it a real-time editor because the display is updated very
frequently, usually after each character or pair of characters you type.
This minimizes the amount of information you must keep in your head as
you edit. *Note Real-time: Basic.
We call EMACS advanced because it provides facilities that go beyond
simple insertion and deletion: filling of text; automatic indentation of
programs; viewing two files at once; and dealing in terms of characters,
words, lines, sentences, paragraphs, and pages, as well as expressions
and comments in several different programming languages. It is much
easier to type one command meaning "go to the end of the paragraph" than
to find the desired spot with repetition of simpler commands.
Self-documenting means that at any time you can type a special
character, the "Help" key, to find out what your options are. You can
also use it to find out what any command does, or to find all the
commands that pertain to a topic. *Note Help: Help.
Customizable means that you can change the definitions of EMACS commands
in little ways. For example, if you use a programming language in which
comments start with <** and end with **>, you can tell the EMACS comment
manipulation commands to use those strings. Another sort of
customization is rearrangement of the command set. For example, if you
prefer the four basic cursor motion commands (up, down, left and right)
on keys in a diamond pattern on the keyboard, you can have it. *Note
Customization: MinorModes.
Extensible means that you can go beyond simple customization and write
entirely new commands, programs in the language TECO. EMACS is an
"on-line extensible" system, which means that it is divided into many
functions that call each other, any of which can be redefined in the
middle of an editing session. Any part of EMACS can be replaced without
making a separate copy of all of EMACS. Many already written extensions
are distributed with EMACS, and some (including DIRED, PAGE, PICTURE,
SORT, TAGS, and WORDAB) are documented in this manual. Although only a
programmer can write an extension, anybody can use it afterward.
Extension requires programming in TECO, a rather obscure language. If
you are clever and bold, you might wish to learn how. *Note TECO:
(CONV), for advice on learning TECO. This manual does not even try to
explain how to write TECO programs, but it does contain some notes that
are useful primarily to the extension writer.
EMACS Node: Glossary, Previous: Intro, Up: Top, Next: CommandIndex
Glossary
Aborting Aborting a recursive editing level (q.v.) means
canceling the command which invoked the recursive
editing. For example, if you abort editing a message to
be sent, the message is not sent. Aborting is done with
the command C-]. *Note Aborting: Quitting.
Altmode Altmode is a character, labelled Escape on some
keyboards. It is the bit prefix character (q.v.) used
to enter Meta-characters when the keyboard does not have
a Meta (q.v.) key. *Note Characters: Characters. Also,
it delimits string arguments to extended commands.
*Note Extended Commands: M-X.
Balance Parentheses
EMACS can balance parentheses manually or automatically.
You can ask to move from one parenthesis to the matching
one. *Note Lists: Lists. When you insert a close
parenthesis, EMACS can show the matching open. *Note
Matching: Matching.
Bit Prefix Character
A bit prefix character is a command which combines with
the next character typed to make one character. They
are used for effectively typing commands which the
keyboard being used is not able to send. For example,
to use a Meta-character when there is no Meta key on the
keyboard, the bit prefix character Altmode (q.v.) is
needed. *Note Bit Prefix: Characters.
Buffer The buffer is the basic editing unit; one buffer
corresponds to one piece of text being edited. You can
have several buffers, but at any time you are editing
only one, the "selected" buffer, though two can be
visible when you are using two windows. *Note Buffers:
Buffers.
C- C is an abbreviation for Control, in the name of a
character. *Note C-: Characters.
C-M- C-M- is an abbreviation for Control-Meta, in the name of
a character. *Note C-M-: Characters.
Comment A comment is text in a program which is intended only
for humans reading the program, and is marked specially
so that the compiler will ignore it. EMACS offers
special commands for creating and killing comments.
*Note Comments: Comments.
Command A command is a character or sequence of characters
which, when typed by the user, fully specifies one
action to be performed by EMACS. For example, "X" and
"Control-F" and "Meta-X Text Mode<cr>" are commands.
*Note Command: Characters. Sometimes the first
character of a multi-character command is also
considered a command: M-X Text Mode<cr> is a command (an
extended command), and M-X is also a command (a command
to read a function name and invoke the function). *Note
Extended Commands: M-X.
Completion Completion is what EMACS does when it automatically
fills out the beginning of an extended command name into
the full name, or as much of it as can be deduced for
certain. Completion occurs when Altmode, Space or
Return is typed. *Note Completion: M-X.
Connected A character command in EMACS works by calling a function
which it is "connected" to. Customization often
involves connecting a character to a different function.
See "Dispatch table". *Note Connected: Characters.
Continuation Line
When a line of text is longer than the width of the
screen, it is displayed on more than one line of screen.
We say that the line is continued, and that all screen
lines used but the first are called continuation lines.
*Note Continuation: Basic.
Control Control is the name of a bit which each command
character does or does not contain. A character's name
includes the word Control if the Control bit is part of
that character. Ideally, this means that the character
is typed using the Control key: Control-A is typed by
typing "A" while holding down Control. On most
keyboards the Control key works in only some cases; the
rest of the time, a bit prefix character (q.v.) must be
used. *Note Control: Characters.
Control-Character
A Control character is a character which includes the
Control bit.
Control-X Command
A Control-X command is a two-character command whose
first character is the prefix character Control-X.
*Note Control-X Command: Characters.
<cr> <cr> stands for the carriage return character, in
contexts where the word "Return" might be confusing.
*Note <cr>: Characters.
CRLF CRLF stands for the sequence of two characters, carriage
return followed by linefeed, which is used to separate
lines in files and in text being edited in EMACS. *Note
CRLF: Characters.
Cursor The cursor is the object on the screen which indicates
the position called point (q.v.) at which insertion and
deletion takes place. The cursor is part of the
terminal, and often blinks or underlines the character
where it is located. *Note Cursor: Screen.
Customization Customization is making minor changes in the way EMACS
works. It is often done by setting variables (*Note
Variables: Variables.) or by reconnecting commands
(*Note Reconnect: MMArcana.).
Defun A defun is a list at the top level of list structure in
a Lisp program. It is so named because most such lists
are calls to the Lisp function defun. *Note Defuns:
Defuns.
Delete This is the label used on some keyboards for the Rubout
character.
Deletion Deletion means erasing text without saving it. EMACS
deletes text only when it is expected not to be worth
saving (all whitespace, or only one character). The
alternative is killing (q.v.). *Note Deletion: Killing.
Dispatch Table The dispatch table is what records the connections
(q.v.) from command characters to functions. Think of a
telephone switchboard connecting incoming lines
(commands) to telephones (functions). A standard EMACS
has one set of connections; a customized EMACS may have
different connections. *Note Dispatch Table: MMArcana.
Echo Area The echo area is the bottom three lines of the screen,
used for echoing the arguments to commands, for asking
questions, and printing brief messages. *Note
Echo Area: Screen.
Echoing Echoing is acknowledging the receipt of commands by
displaying them (in the echo area). Most programs other
than EMACS echo all their commands. EMACS never echoes
single-character commands; longer commands echo only if
you pause while typing them.
Error Messages Error messages are single lines of output printed by
EMACS when the user or a TECO program asks for something
impossible. They appear at the top of the screen and
end with a question mark.
Escape Escape is the label used on some keyboards for the
Altmode character.
Exiting Exiting EMACS means returning to EMACS's superior,
normally HACTRN. *Note Exiting: Exiting. Exiting a
recursive editing level (q.v.) means allowing the
command which invoked the recursive editing to complete
normally. For example, if you are editing a message to
be sent, and you exit, the message is sent.
Extended Command
An extended command is a command which consists of the
character Meta-X followed by the command name (really,
the name of a function (q.v.)). An extended command
requires several characters of input, but its name is
made up of English words, so it is easy to remember.
*Note Extended Commands: M-X.
Extension Extension means making changes to EMACS which go beyond
the bounds of mere customization. If customization is
moving the furniture around in a room, extension is
building new furniture. *Note Extension: (CONV).
Filling Filling text means moving text from line to line so that
all the lines are approximately the same length. *Note
Filling: Filling.
Function A function is a named subroutine of EMACS. When you
type a command, EMACS executes a function which
corresponds to the command, and the function does the
work. Character commands are connected to functions
through the dispatch table (q.v.). Extended commands
contain the name of the function to be called; this
allows you to call any function. *Note Functions: M-X.
Global The global value of a variable or of a command character
definition applies to all buffers and all files (except
those which have their own local values of the variable
or definition). *Note Global: Variables.
Grinding Grinding means reformatting a program so that it is
indented according to its structure. *Note Grinding:
Grinding.
Help You can type the Help character at any time to ask what
options you have, or to ask what any command does.
*Note Help: Help.
Home Directory Your home directory is the one on which your mail and
your init files are stored.
INFO INFO is the subsystem for perusing tree-structured
documentation files. The documentation in INFO includes
a version of the EMACS manual.
ITS ITS is the Incompatible Timesharing System written at
the MIT Artificial Intelligence Lab. EMACS was first
developed on this system. Just what it is incompatible
with has changed from year to year.
Kill Ring The kill ring is where killed text is saved. It holds
the last nine or so blocks of killed text. It is called
a ring because you can bring any of the saved blocks to
the front by rotating the ring. *Note Kill ring:
Un-Killing.
Killing Killing means erasing text and saving it inside EMACS to
be recovered later if desired. Most EMACS commands to
erase text do killing, as opposed to deletion (q.v.).
*Note Killing: Killing.
List A list is, approximately, a text string beginning with
an open parenthesis and ending with the matching close
parenthesis. *Note Lists: Lists. Actually there are a
few complications to the syntax, which is controlled by
the syntax table (*Note Syntax: Syntax.).
Local A local value of a variable or of a command character
definition applies to only one buffer or file. *Note
Locals: Locals.
Local Modes List
A local modes list appears in a file to specify local
values for variables or command character definitions,
to be in effect while visiting that file.
M- M- in the name of a character is an abbreviation for
Meta.
M-X M-X is the character which begins an extended command
(q.v.). Extended commands have come to be known also as
"M-X commands", and an individual extended command is
often referred to as "M-X such-and such". *Note M-X:
M-X.
Major Mode The major modes are a mutually exclusive set of options
which configure EMACS for editing a certain sort of
text. Ideally, each programming language has its own
major mode. *Note Major Modes: MajorModes.
Mark The mark points, invisibly, to a position in the text.
Many commands operate on the text between point and the
mark (known as the region, q.v.). *Note Mark: Mark.
Meta Meta refers to the Meta key. A character's name
includes the word Meta if the Meta key must be held down
in order to type the character. If there is no Meta
key, then the Altmode character is used as a prefix
instead. *Note Meta: Characters.
Meta Character A Meta character is one whose character code includes
the Meta bit. These characters can be typed only by
means of a Meta key or by means of the metizer command
(q.v.).
Metizer The metizer is another term for the bit prefix character
for the Meta bit; namely, Altmode (q.v.).
Minibuffer The minibuffer is a facility for editing and then
executing a TECO program. *Note Minibuffer: Minibuffer.
Minor mode A minor mode is an optional feature of EMACS which can
be switched on or off independently of all other
features. Each minor mode is both the name of an option
(q.v.) and the name of an extended command to set the
option. *Note Minor Modes: MinorModes.
MM-command This is an obsolete synonym for "extended command".
Mode line The mode line is a line just above the echo area (q.v.),
used for status information. *Note Mode Line: ModeLine.
Narrowing Narrowing means limiting editing to only a part of the
text in the buffer. Text outside that part is
inaccessible to the user until the boundaries are
widened again, but it is still there, and saving the
file saves it all. *Note Narrowing: Narrowing.
Node The node is the unit of structure of INFO (q.v.) files.
Numeric Argument
A numeric argument is a number specified before a
command to change the effect of the command. Often the
numeric argument serves as a repeat count. *Note
Numeric Arguments: Arguments.
Option An option is a variable which exists to be set by the
user to change the behavior of EMACS commands. This is
an important method of customization. *Note Options:
Variables.
Parse We say that EMACS parses words or expressions in the
text being edited. Really, all it knows how to do is
find the other end of a word or expression. *Note
Parse: Syntax.
Point Point is the place in the buffer at which insertion and
deletion occur. Point is considered to be between two
characters, not at one character. The terminal's cursor
(q.v.) indicates the location of point. *Note Point:
Basic.
Prefix Character
A prefix character is a command whose sole function is
to introduce a set of multi-character commands.
Control-X (q.v.) is a prefix character. The bit prefix
characters (q.v.) are other examples.
Prompt A prompt is text printed in the echo area to ask the
user for input. Printing a prompt is called
"prompting". EMACS can prompt when a command requires
an argument, or when only part of a command has been
typed. However, the prompt will not appear unless you
pause in your typing. *Note Prompt: M-X.
Q-Registers Q-registers are internal TECO variables which can be
used by EMACS or by the user to store text or numbers.
*Note Q-Registers: Copying.
Quitting Quitting means interrupting a command which is partially
typed in or already executing. It is done with
Control-G. *Note Quitting: Quitting.
Quoting Quoting means depriving a character of its usual special
significance. It is usually done with Control-Q. What
constitutes special significance depends on the context
and on convention. For example, an "ordinary" character
as an EMACS command inserts itself; so you can insert
any other character, such as Rubout, by quoting it as in
Control-Q Rubout. Not all contexts allow quoting.
*Note Quoting: Basic.
Recursive Editing Level
A recursive editing level is a state in which part of
the execution of a command involves asking the user to
edit some text. This text may or may not be the same as
the text to which the command was applied. The mode
line indicates recursive editing levels with square
brackets ("[" and "]"). *Note Recursive Editing Level:
Recursive.
Redisplay Redisplay is the process of correcting the image on the
screen to correspond to changes that have been made in
the text being edited. *Note Redisplay: Screen.
Region The region is the text between point (q.v.) and the mark
(q.v.). The terminal's cursor indicates the location of
point, but the mark is invisible. Many commands operate
on the text of the region. *Note Region: Mark.
Return Return is the carriage return character, used as input
to EMACS. Return is used as a command in itself to
insert a line separator. It also terminates arguments
for most commands. *Note Return: Characters.
Rubout Rubout is a character, sometimes labelled "Delete". It
is used as a command to delete one character of text.
It also deletes one character when an EMACS command is
reading an argument.
S-expression An s-expression is the basic syntactic unit of Lisp:
either a list, or a symbol containing no parentheses
(actually, there are a few exceptions to the rule, based
on the syntax of Lisp). *Note S-expressions: Lists.
Selecting Selecting a buffer (q.v.) means making editing commands
apply to that buffer as opposed to any other. At all
times one buffer is selected and editing takes place in
that buffer. *Note Select: Buffers.
Self-documentation
Self-documentation is the feature of EMACS which can
tell you what any command does, or give you a list of
all commands related to a topic you specify. You ask
for self-documentation with the Help character. *Note
Self-documentation: Help.
String Argument
A string argument is an argument which follows the
command name in an extended command. In "M-X
Aproposword<cr>", "Word" is a string argument to the
Apropos command. *Note String Arguments: M-X.
Subsystem A subsystem of EMACS is an EMACS command which, itself,
reads commands and displays the results. Examples are
INFO, which is for perusing documentation; DIRED, which
is for editing directories; RMAIL and BABYL, which
are for reading and editing mail. The word "subsystem"
implies that it offers many independent commands which
can be used freely. If an EMACS function asks specific
questions, we do not call it a subsystem.
Usually the subsystem continues in operation until a
specific command to exit (usually "Q") is typed. The
commands for a subsystem do not usually resemble
ordinary EMACS commands, since editing text is not their
purpose. The Help character should elicit the
subsystem's documentation. *Note Subsystems:
Subsystems.
Syntax Table The syntax table tells EMACS which characters are part
of a word, which characters balance each other like
parentheses, etc. *Note Syntax: Syntax.
Tailoring This is a synonym for customization (q.v.).
TECO Search String
A TECO search string is a sort of pattern used by the
TECO search command, and also by various EMACS commands
which use the TECO search command. *Note
TECO search strings: TECOsearch.
Top Level Top level is the normal state of EMACS, in which you are
editing the text of the file you have visited. You are
at top level whenever you are not in a recursive editing
level or a subsystem (q.v.).
Twenex Twenex is the operating system which DEC likes to call
"TOPS-20". However, a person should not be forced to
call a system "tops" unless he really thinks so. Come
now, DEC, don't you think people will praise your
products voluntarily? The name "Twenex" is also more
appropriate because Twenex was developed from the Tenex
system, and has no relationship to "TOPS-10". What's
more, it's very euphonious.
Typeout Typeout is a message, printed by an EMACS command, which
overwrites the area normally used for displaying the
text being edited, but which does not become part of the
text. Typeout is used for messages which might be too
long to fit in the echo area (q.v.). *Note Typeout:
Screen.
Undo Undo is a command which undoes the effect on the buffer
of a previous command. Only some commands are undoable
and only the most recent undoable command can be undone.
*Note Undo: Undo.
Un-killing Un-killing means reinserting text previously killed. It
can be used to undo a mistaken kill, or for copying or
moving text. *Note Un-killing: Un-killing.
User Name Your user name is the name you use to log in. It
identifies you as opposed to all the other users. It
may be the same as your home directory's name.
Variable A variable is a name with which EMACS associates a
value, which can be a number or a string. *Note
Variables: Variables. Some variables ("options") are
intended to be used or set by the user; others are for
purely internal purposes.
Virtual Boundaries
The virtual boundaries delimit the accessible part of
the buffer, when narrowing (q.v.) is in effect. *Note
Virtual Boundaries: Narrowing.
Visiting Visiting a file means loading its contents into a buffer
(q.v.) where they can be edited. *Note Visiting:
Visiting.
Wall Chart The wall chart is a very brief EMACS reference sheet
giving one line of information about each short command.
Whitespace Whitespace is any run of consecutive formatting
characters (space, tab, carriage return, linefeed, and
backspace).
Widening Widening is the operation which undoes narrowing (q.v.).
*Note Widening: Narrowing.
Window A window is a region of the screen in which text being
edited is displayed. EMACS can divide the screen into
two windows. *Note Windows: Windows. "The window" also
means the position in the buffer which is at the top of
the screen. *Note The Window: Display.
Working Directory
This is the directory which you have told the system you
wish to operate on primarily at the moment. This is
usually the same as your home directory (q.v.). It is
specified with the DDT command :CWD <directory>.
Yanking This is a synonym for un-killing (q.v.).
^R The string "^R" is the beginning of many function names.
*Note ^R: MMArcana.
^R Mode ^R mode is the real time editing mode of TECO. EMACS
always operates in this mode.
EMACS Node: CommandIndex, Previous: Glossary, Up: Top, Next: LibCat
Command Summary
This summary contains brief descriptions with cross references for all
commands, grouped by topic. Within each topic, they are in alphabetical
order. Our version of alphabetical order places non-control non-meta
characters first, then control characters, then meta characters, then
control-meta characters. Control-X and Meta-X commands come last. Not
all Meta-X commands are included.
Each command has a footnote whose name is the same as the command name.
Thus, you do not need to find the entry for a command to use the
footnote. Just do F<command name><cr>. For example, F Control-S<cr>
goes directly to the node which documents the Control-S command. For an
extended command, the footnote name does not include the "Meta-X".
Prefix Characters
Altmode (^R Prefix Meta)
Altmode is a bit prefix character which turns on the
Meta bit in the next character. Thus, Altmode F is
equivalent to the single character Meta-F, which is
useful if your keyboard has no Meta key. *Note Altmode:
Characters.
Control-^ (^R Prefix Control)
Control-^ is a bit prefix character which turns on the
Control bit in the following character. Thus, Control-^
< is equivalent to the single character Control-<.
*Note Control-^: Characters.
Control-C (^R Prefix Control-Meta)
Control-C is a bit prefix character which turns on the
Control bit and the Meta bit in the following character.
Thus, Control-C ; is equivalent to the single character
Control-Meta-;. *Note Control-C: Characters.
Control-Q (^R Quoted Insert)
Control-Q inserts the following character. This is a
way of inserting control characters. *Note Control-Q:
Basic.
Control-U (^R Universal Argument)
Control-U is a prefix for numeric arguments which works
the same on all terminals. *Note Control-U: Arguments.
Control-X
Control-X is a prefix character which begins a
two-character command. Each combination of Control-X
and another character is a "Control-X command".
Individual Control-X commands appear in this summary
according to their uses.
Meta-X (^R Extended Command)
Meta-X is a prefix character which introduces an
extended command name. *Note Meta-X: M-X.
Control-Meta-X (^R Instant Extended Command)
Control-Meta-X is another way of invoking an extended
command. Instead of putting the arguments in the same
line as the command name, the command reads the
arguments itself. *Note Control-Meta-X: M-X.
Control-digits, Meta-digits, Control-Meta-digits
These all specify a numeric argument for the next
command. *Note Arguments: Arguments.
Control-Minus, Meta-Minus, Control-Meta-Minus
These all begin a negative numeric argument for the next
command. *Note Arguments: Arguments.
Simple Cursor Motion
Control-A (^R Beginning of Line, built-in function)
Control-A moves to the beginning of the line. *Note
Control-A: Basic.
Control-B (^R Backward Character, built-in function)
Control-B moves backward one character. *Note
Control-B: Basic.
Control-E (^R End of Line, built-in function)
Control-E moves to the end of the line. *Note
Control-E: Basic.
Control-F (^R Forward Character, built-in function)
Control-F moves forward one character. *Note Control-F:
Basic.
Control-H (^R Backward Character, built-in function)
Control-H moves backward one character. *Note
Control-H: Basic.
Control-N (^R Down Real Line)
Control-N moves vertically straight down. *Note
Control-N: Basic.
Control-P (^R Up Real Line)
Control-P moves vertically straight up. *Note
Control-P: Basic.
Control-R (^R Reverse Search)
Control-R is like Control-S but searches backward.
*Note Control-R: Search.
Control-S (^R Incremental Search)
Control-S searches for a string, terminated by Altmode.
It searches as you type. *Note Control-S: Search.
Meta-< (^R Goto Beginning)
Meta-< moves to the beginning of the buffer. *Note
Meta-<: Basic.
Meta-> (^R Goto End)
Meta-> moves to the end of the buffer. *Note Meta->:
Basic.
Control-X Control-N (^R Set Goal Column)
Control-X Control-N sets a horizontal goal for the
Control-N and Control-P commands. When there is a goal,
those commands try to move to the goal column instead of
straight up or down.
Lines
Return (^R CRLF)
Return inserts a line separator, or advances onto a
following blank line. *Note Return: Basic.
Control-O (^R Open Line, built-in function)
Control-O inserts a line separator, but point stays
before it. *Note Control-O: Basic.
Meta-= (^R Count Lines Region)
Meta-= prints the number of lines between point and
mark. *Note Meta-=: Mark.
Control-X Control-O (^R Delete Blank Lines)
Control-X Control-O deletes all but one of the blank
lines around point. If the current line is not blank,
all blank lines following it are deleted. *Note
Control-X Control-O: Basic.
Control-X Control-T (^R Transpose Lines)
Control-X Control-T transposes the contents of two
lines. *Note Control-X Control-T: Fixit.
Killing and Un-killing
Rubout (^R Backward Delete Character, built-in function)
Rubout deletes the previous character. *Note Rubout:
Basic.
Control-Rubout (^R Backward Delete Hacking Tabs, built-in function)
Control-Rubout deletes the previous character, but
converts a tab character into several spaces. *Note
Control-Rubout: Lisp.
Control-D (^R Delete Character, built-in function)
Control-D deletes the next character. *Note Control-D:
Basic.
Control-K (^R Kill Line)
Control-K kills to the end of the line, or, at the end
of a line, kills the line separator. *Note Control-K:
Killing.
Control-W (^R Kill Region)
Control-W kills the region, the text between point and
the mark. *Note Control-W: Killing. *Note Region:
Mark.
Control-Y (^R Un-kill)
Control-Y reinserts the last saved block of killed text.
*Note Control-Y: Un-Killing.
Meta-W (^R Copy Region)
Meta-W saves the region as if it were killed without
removing it from the buffer. *Note Meta-W: Un-Killing.
Meta-Y (^R Un-kill Pop)
Meta-Y rolls the kill ring to reinsert saved killed text
older than the most recent kill. *Note Meta-Y:
Un-Killing.
Control-Meta-W (^R Append Next Kill)
Control-Meta-W causes an immediately following kill
command to append its text to the last saved block of
killed text. *Note Control-Meta-W: Un-Killing.
Control-X G (^R Get Q-reg)
Control-X G inserts in the buffer the contents of a
q-register. *Note Copying: Copying.
Control-X T (^R Transpose Regions)
Control-X T transposes two arbitrary regions defined by
point and the last three marks. *Note Control-X T:
Fixit.
Control-X X (^R Put Q-reg)
Control-X X inserts in the buffer the contents of a
q-register. *Note Copying: Copying.
M-X Overwrite Mode
M-X Overwrite Mode turns Overwrite mode on or off. In
Overwrite mode, printing characters overwrite existing
text instead of pushing it to the right. *Note
Overwrite Mode: MinorModes.
Scrolling and Display Control
Control-Alpha (SAIL Character Mode)
Control-Alpha toggles SAIL Character mode. When this
mode is on, control characters in the buffer are
displayed as themselves. *Note Control-Alpha: Screen.
Control-L (^R New Window)
Control-L clears the screen and centers point in it.
With an argument, it can put point on a specific line of
the screen. *Note Control-L: Display.
Control-V (^R Next Screen)
Control-V scrolls the text upward by a screenful or
several lines. *Note Control-V: Display.
Meta-R (^R Move to Screen Edge)
Meta-R moves point to beginning of the text on a
specified line of the screen. *Note Meta-R: Display.
Meta-V (^R Previous Screen)
Meta-V scrolls downward by a screenful or several lines.
*Note Meta-V: Display.
Control-Meta-R (^R Reposition Window)
Control-Meta-R tries to center on the screen the
function or paragraph you are looking at. *Note
Control-Meta-R: Display.
Control-Meta-V (^R Scroll Other Window)
Control-Meta-V scrolls the other window up or down, when
you are in two window mode. *Note Control-Meta-V:
Windows.
M-X View Buffer
M-X View Buffer skips through a buffer by screenfuls.
*Note View Buffer: Display.
M-X View File
M-X View File lets you move through a file sequentially
by screenfuls forward and back. *Note View File:
FilAdv.
The Mark and the Region
Control-Space (^R Set/Pop Mark)
Control-Space sets the mark or moves to the location of
the mark. *Note Control-Space: Mark.
Control-< (^R Mark Beginning)
Control-< sets the mark at the beginning of the buffer.
*Note Control-<: Mark.
Control-> (^R Mark End)
Control-> sets the mark at the end of the buffer. *Note
Control->: Mark.
Control-@ (^R Set/Pop Mark)
Control-@ sets the mark or moves to the location of the
mark. *Note Control-@: Mark.
Meta-@ (^R Mark Word)
Meta-@ puts the mark at the end of the next word. *Note
Meta-@: Words.
Meta-H (^R Mark Paragraph)
Meta-H puts point at the beginning of the paragraph and
the mark at the end. *Note Meta-H: Sentences.
Control-Meta-@ (^R Mark Sexp)
Control-Meta-@ puts the mark at the end of the next
s-expression. *Note Control-Meta-@: Lists.
Control-Meta-H (^R Mark Defun)
Control-Meta-H puts point at the beginning of the
current Defun and the mark at the end. *Note
Control-Meta-H: Defuns.
Control-X H (^R Mark Whole Buffer)
Control-X H puts point at the beginning of the buffer
and the mark at the end. *Note Control-X H: Mark.