mirror of
https://github.com/PDP-10/its.git
synced 2026-03-26 10:12:37 +00:00
694 lines
30 KiB
Plaintext
694 lines
30 KiB
Plaintext
This is the -*-Text-*- of the EMACS tutorial.
|
||
|
||
DOCOND declarations for operating-system dependencies.
|
||
{Alternatives:ITS,Twenex}
|
||
{Flag:?ITS}
|
||
{Flag:?Twenex}
|
||
{Char Replace:+ITS=>C-Z->C-C}
|
||
{Char Replace:+ITS=>C-M-Z->C-M-C}
|
||
|
||
{end}
|
||
You are looking at the EMACS tutorial. Comments on this document
|
||
should be mailed to BUG-EMACS.
|
||
|
||
EMACS commands generally involve the CONTROL key (sometimes labelled
|
||
CTRL or CTL) or the META key (sometimes labelled EDIT). Rather than
|
||
write out META or CONTROL each time we want you to prefix a character,
|
||
we'll use the following abbreviations:
|
||
|
||
C-<chr> means hold the CONTROL key while typing the character <chr>
|
||
Thus, C-F would be: hold the CONTROL key and type F.
|
||
M-<chr> means hold the META or EDIT key down while typing <chr>.
|
||
If there is no META or EDIT key, type <ALT>, release it,
|
||
then type the character <chr>. "<ALT>" stands for the
|
||
key labelled "ALT" or "ESC".
|
||
|
||
Important note: if you must exit at some point, type C-X C-Z.
|
||
The characters ">>" at the left margin indicate directions for you to
|
||
try using a command. For instance:
|
||
<<Blank lines inserted here by startup of TEACH-EMACS>>
|
||
>> Now type C-V (View next screen) to move to the next screen.
|
||
(go ahead, do it by depressing the control key and V together).
|
||
From now on, you'll be expected to do this whenever you finish
|
||
reading the screen.
|
||
|
||
Note that there is an overlap when going from screen to screen; this
|
||
provides some continuity when moving through the file.
|
||
|
||
The first thing that you need to know is how to move around from
|
||
place to place in the file. You already know how to move forward a
|
||
screen, with C-V. To move backwards a screen, type M-V (depress the
|
||
META key and type V, or type <ALT>V if you don't have a META or EDIT
|
||
key).
|
||
|
||
>> Try typing M-V and then C-V to move back and forth a few times.
|
||
|
||
|
||
SUMMARY
|
||
-------
|
||
|
||
The following commands are useful for viewing screenfuls:
|
||
|
||
C-V Move forward one screenful
|
||
M-V Move backward one screenful
|
||
C-L Clear screen and redisplay everything
|
||
putting the text near the cursor at the center.
|
||
|
||
>> Find the cursor and remember what text is near it.
|
||
Then type a C-L.
|
||
Find the cursor again and see what text is near it now.
|
||
|
||
|
||
BASIC CURSOR CONTROL
|
||
--------------------
|
||
|
||
Getting from screenful to screenful is useful, but how do you
|
||
reposition yourself within a given screen to a specific place?
|
||
There are several ways you can do this. One way (not the best, but
|
||
the most basic) is to use the commands previous, backward, forward
|
||
and next. As you can imagine these commands (which are given to
|
||
EMACS as C-P, C-B, C-F, and C-N respectively) move the cursor from
|
||
where it currently is to a new place in the given direction. Here,
|
||
in a more graphical form are the commands:
|
||
|
||
Previous line, C-P
|
||
:
|
||
:
|
||
Backward, C-B .... Current cursor position .... Forward, C-F
|
||
:
|
||
:
|
||
Next line, C-N
|
||
|
||
You'll probably find it easy to think of these by letter. P for
|
||
previous, N for next, B for backward and F for forward. These are
|
||
the basic cursor positioning commands and you'll be using them ALL
|
||
the time so it would be of great benefit if you learn them now.
|
||
|
||
>> Do a few C-N's to bring the cursor down to this line.
|
||
|
||
>> Move into the line with C-F's and then up with C-P's.
|
||
See what C-P does when the cursor is in the middle of the line.
|
||
|
||
Lines are separated by a pair of characters, a Return and a Linefeed,
|
||
but EMACS almost always makes them look like one character. You
|
||
can think of it as a Newline.
|
||
|
||
>> Try to C-B at the beginning of a line. Do a few more C-B's.
|
||
Then do C-F's back to the end of the line and beyond.
|
||
|
||
When you go off the top or bottom of the screen, the text beyond
|
||
the edge is shifted onto the screen so that your instructions can
|
||
be carried out while keeping the cursor on the screen.
|
||
|
||
>> Try to move the cursor off the bottom of the screen with C-N and
|
||
see what happens.
|
||
|
||
If moving by characters is too slow, you can move by words. M-F
|
||
(Meta-F) moves forward a word and M-B moves back a word.
|
||
|
||
>> Type a few M-F's and M-B's. Intersperse them with C-F's and C-B's.
|
||
|
||
Notice the parallel between C-F and C-B on the one hand, and M-F and
|
||
M-B on the other hand. Very often Meta characters are used for
|
||
operations related to English text whereas Control characters operate
|
||
on the basic textual units that are independent of what you are
|
||
editing (characters, lines, etc). There is a similar parallel between
|
||
lines and sentences: C-A and C-E move to the beginning or end of a
|
||
line, and M-A and M-E move to the beginning or end of a sentence.
|
||
|
||
>> Try a couple of C-A's, and then a couple of C-E's.
|
||
Try a couple of M-A's, and then a couple of M-E's.
|
||
|
||
See how repeated C-A's do nothing, but repeated M-A's keep moving
|
||
farther. Do you think that this is right?
|
||
|
||
Two other simple cursor motion commands are M-< (Meta Less-than),
|
||
which moves to the beginning of the file, and M-> (Meta Greater-than),
|
||
which moves to the end of the file. You probably don't need to try
|
||
them, since finding this spot again will be boring. If you need the
|
||
shift key to type a "<", then you must also use the shift key to type
|
||
M-<. Otherwise, you would be typing M-, .
|
||
|
||
The location of the cursor in the text is also called "point". To
|
||
paraphrase, the cursor shows on the screen where point is located in
|
||
the text.
|
||
|
||
Here is a summary of simple moving operations including the word and
|
||
sentence moving commands:
|
||
|
||
C-F Move forward a character
|
||
C-B Move backward a character
|
||
|
||
M-F Move forward a word
|
||
M-B Move backward a word
|
||
|
||
C-N Move to next line
|
||
C-P Move to previous line
|
||
|
||
C-A Move to beginning of line
|
||
C-E Move to end of line
|
||
|
||
M-A Move back to beginning of sentence
|
||
M-E Move forward to end of sentence
|
||
|
||
M-< Go to beginning of file
|
||
M-> Go to end of file
|
||
|
||
>> Try all of these commands now a few times for practice.
|
||
Since the last two will take you away from this screen,
|
||
you can come back here with M-V's and C-V's. These are
|
||
the most often used commands.
|
||
|
||
Like all other commands in EMACS, these commands can be given
|
||
arguments which cause them to be executed repeatedly. The way you
|
||
give a command a repeat count is by typing C-U and then the digits
|
||
before you type the command. If you have a META or EDIT key, you can
|
||
omit the C-U if you hold down the META or EDIT key while you type the
|
||
digits. This is easier, but we recommend the C-U method because it
|
||
works on any terminal.
|
||
|
||
For instance, C-U 8 C-F moves forward eight characters.
|
||
|
||
>> Try giving a suitable argument to C-N or C-P to come as close
|
||
as you can to this line in one jump.
|
||
|
||
The only apparent exception to this is the screen moving commands,
|
||
C-V and M-V. When given an argument, they scroll the screen up or
|
||
down by that many lines, rather than screenfuls. This proves to be
|
||
much more useful.
|
||
|
||
>> Try typing C-U 8 C-V now.
|
||
|
||
Did it scroll the screen up by 8 lines? If you would like to
|
||
scroll it down you can give an argument to M-V.
|
||
|
||
|
||
WHEN EMACS IS HUNG
|
||
-----------------
|
||
|
||
If EMACS gets into an infinite (or simply very long) computation which
|
||
you don't want to finish, you can stop it safely by typing C-G.
|
||
You can also use C-G to discard a numeric argument or the beginning of
|
||
a command that you don't want to finish.
|
||
|
||
>> Type C-U 100 to make a numeric arg of 100, then type C-G.
|
||
Now type C-F. How many characters does it move?
|
||
If you have typed an <ALT> by mistake, you can get rid of it
|
||
with a C-G.
|
||
|
||
If you type <ALT> <ALT>, you get into something known as a
|
||
"minibuffer". That is an advanced feature of EMACS. We mention it
|
||
now only to say that you can get out of it with one or two C-G's if
|
||
you get into it by accident.
|
||
|
||
|
||
INSERTING AND DELETING
|
||
----------------------
|
||
|
||
If you want to type text, just do it. Characters which you can see,
|
||
such as A, 7, *, etc. are taken by EMACS as text and inserted
|
||
immediately. Type <Return> (the carriage-return key) to insert a line
|
||
separator.
|
||
|
||
You can delete the last character you typed by typing <Rubout>.
|
||
<Rubout> is a key on the keyboard, which might be labelled "Delete"
|
||
instead of "Rubout" on some terminals. More generally, <Rubout>
|
||
deletes the character immediately before the current cursor position.
|
||
|
||
>> Do this now, type a few characters and then delete them
|
||
by typing <Rubout> a few times. Don't worry about this file
|
||
being changed; you won't affect the master tutorial. This is just
|
||
a copy of it.
|
||
|
||
>> Now start typing text until you reach the right margin, and keep
|
||
typing. When a line of text gets too big for one line on the
|
||
screen, the line of text is "continued" onto a second screen line.
|
||
The exclamation mark at the right margin indicates a line which has
|
||
been continued.
|
||
>> Use <Rubout>s to delete the text until the line fits on one screen
|
||
line again. The continuation line goes away.
|
||
|
||
>> Move the cursor to the beginning of a line and type <Rubout>. This
|
||
deletes the line separator before the line and merges the line onto
|
||
the previous line. The resulting line may be too long to fit, in
|
||
which case it has a continuation line.
|
||
>> Type <Return> to insert the separator again.
|
||
|
||
Remember that most EMACS commands can be given a repeat count; Note
|
||
that this includes characters which insert themselves.
|
||
|
||
>> Try that now -- type C-U 8 * and see what happens.
|
||
|
||
You've now learned the most basic way of typing something in
|
||
EMACS and correcting errors. You can delete by words or lines
|
||
as well. Here is a summary of the delete operations:
|
||
|
||
<Rubout> delete the character just before the cursor
|
||
C-D delete the next character after the cursor
|
||
|
||
M-<Rubout> kill the word immediately before the cursor
|
||
M-D kill the next word after the cursor
|
||
|
||
C-K kill from the cursor position to end of line
|
||
M-K kill to the end of the current sentence
|
||
|
||
Notice that <Rubout> and C-D vs M-<Rubout> and M-D extend the parallel
|
||
started by C-F and M-F (well, <Rubout> isn't really a control
|
||
character, but let's not worry about that). C-K and M-K are like C-E
|
||
and M-E, sort of, in that lines are opposite sentences.
|
||
|
||
Now suppose you kill something, and then you decide that you want to
|
||
get it back? Well, whenever you kill something bigger than a
|
||
character, EMACS saves it for you. To yank it back, use C-Y. Note
|
||
that you don't have to be in the same place to do C-Y; This is a good
|
||
way to move text around. Also note that the difference between
|
||
"Killing" and "Deleting" something is that "Killed" things can be
|
||
yanked back, and "Deleted" things cannot. Generally, the commands
|
||
that can destroy a lot of text save it, while the ones that attack
|
||
only one character, or nothing but blank lines and spaces, do not
|
||
save.
|
||
|
||
For instance, type C-N a couple times to position the cursor
|
||
at some line on this screen.
|
||
|
||
>> Do this now, move the cursor and kill that line with C-K.
|
||
|
||
Note that a single C-K kills the contents of the line, and a second
|
||
C-K kills the line itself, and make all the other lines move up. If
|
||
you give C-K a repeat count, it kills that many lines AND their
|
||
contents.
|
||
|
||
The text that has just disappeared is saved so that you can
|
||
retrieve it. To retrieve the last killed text and put it where
|
||
the cursor currently is, type C-Y.
|
||
|
||
>> Try it; type C-Y to yank the text back.
|
||
|
||
Think of C-Y as if you were yanking something back that someone
|
||
took away from you. Notice that if you do several C-K's in a row
|
||
the text that is killed is all saved together so that one C-Y will
|
||
yank all of the lines.
|
||
|
||
>> Do this now, type C-K several times.
|
||
|
||
Now to retrieve that killed text:
|
||
|
||
>> Type C-Y. Then move the cursor down a few lines and type C-Y
|
||
again. You now see how to copy some text.
|
||
|
||
What do you do if you have some text you want to yank back, and then
|
||
you kill something else? C-Y would yank the more recent kill. But
|
||
the previous text is not lost. You can get back to it using the M-Y
|
||
command. After you have done C-Y to get the most recent kill, typing
|
||
M-Y replaces that yanked text with the previous kill. Typing M-Y
|
||
again and again brings in earlier and earlier kills. When you
|
||
have reached the text you are looking for, you can just go away and
|
||
leave it there. If you M-Y enough times, you come back to the
|
||
starting point (the most recent kill).
|
||
|
||
>> Kill a line, move around, kill another line.
|
||
Then do C-Y to get back the second killed line.
|
||
Then do M-Y and it will be replaced by the first killed line.
|
||
Do more M-Y's and see what you get. Keep doing them until
|
||
the second kill line comes back, and then a few more.
|
||
If you like, you can try giving M-Y positive and negative
|
||
arguments.
|
||
|
||
|
||
FILES
|
||
-----
|
||
|
||
In order to make the text you edit permanent, you must put it in a
|
||
file. Otherwise, it will go away when your invocation of EMACS goes
|
||
away. You put your editing in a file by "visiting" the file. What
|
||
visiting means is that you see the contents of the file in your EMACS;
|
||
and, loosely speaking, what you are editing is the file itself.
|
||
However, the changes still don't become permanent until you "save" the
|
||
file. This is so you can have control to avoid leaving a half-changed
|
||
file around when you don't want to. Even then, EMACS really makes a
|
||
new version of the file and doesn't change the old version at all (so
|
||
that you can verify or throw away your changes later if you like).
|
||
|
||
If you look near the bottom of the screen you will see a
|
||
line that starts with "EMACS (Fundamental) Main:" and continues with
|
||
the filename {+Twenex:DSK:<your
|
||
directory>TEACH-EMACS.TUTORIAL}{+ITS:your-directory; machine: TEACH
|
||
TEXT}. This is the name of your own temporary copy of the
|
||
text of the EMACS tutorial; the file you are now visiting. Whatever
|
||
file you visit, that file's name will appear in that precise
|
||
spot.{*Refill:}
|
||
|
||
The commands for visiting and saving files are unlike the other
|
||
commands you have learned in that they consist of two characters.
|
||
They both start with the character Control-X. There is a whole series
|
||
of commands that start with Control-X; many of them have to do with
|
||
files, buffers, and related things, and all of them consist of
|
||
Control-X followed by some other character.
|
||
|
||
Another thing about the command for visiting a file is that you have
|
||
to say what file name you want. We say the command "reads an argument
|
||
from the terminal" (in this case, the argument is the name of the
|
||
file). After you type the command
|
||
|
||
C-X C-V Visit a file
|
||
|
||
EMACS will ask you for the file name. You should end the name with
|
||
the Return key. {+ITS:If you are using one of the USERS or GUEST
|
||
directories, you should make the first name of the file be your own
|
||
name, and use the second name to distinguish among your files.} After
|
||
this command, you will see the contents of the file in your EMACS.
|
||
You can edit the contents. When you wish to make the changes
|
||
permanent, issue the command{*Refill:}
|
||
|
||
C-X C-S Save the file
|
||
|
||
A new version of the file will be created. When the operation is
|
||
finished, EMACS prints the name and version saved. You should save
|
||
fairly often, so that you will not lose very much work if the system
|
||
should crash.
|
||
|
||
If you forget to save before visiting a different file, EMACS will
|
||
remind you that you made changes and ask you whether to save them.
|
||
(If you don't save them, they will be thrown away. That might be what
|
||
you want!) You should answer with a "Y" to save them or a "N" to
|
||
throw the changes away.
|
||
|
||
To make a new file, just visit it "as if" it already existed. Then
|
||
start typing in the text. When you ask to "save" the file, EMACS
|
||
will really create the file with the text that you have inserted.
|
||
From then on, you can consider yourself to be editing an already
|
||
existing file.
|
||
|
||
It is not easy for you to try out visiting a file and continue with
|
||
the tutorial. But you can always come back into the tutorial by
|
||
starting it over and skipping forward. So, when you feel ready, you
|
||
should try visiting a file named "FOO", putting some text in it, and
|
||
saving it; then exit from EMACS and look at the file to be sure that
|
||
it worked.
|
||
|
||
|
||
EXTENDING THE COMMAND SET
|
||
-------------------------
|
||
|
||
There are many, many more EMACS commands than could possibly be put
|
||
on all the control and meta characters. EMACS gets around this with
|
||
the X (eXtend) command. This comes in two flavors:
|
||
|
||
C-X Character eXtend. Followed by one character.
|
||
M-X Named command eXtend. Followed by a long name.
|
||
|
||
These are commands that are generally useful but used less than the
|
||
commands you have already learned about. You have already seen two
|
||
of them: the file commands C-X C-V to Visit and C-X C-S to Save.
|
||
Another example is the command to tell EMACS that you'd
|
||
like to stop editing. The command to do this is C-X C-Z.{+Twenex: Think of
|
||
it as Z for zapping yourself.}
|
||
|
||
There are many C-X commands. The ones you need immediately are:
|
||
|
||
C-X C-V Visit file.
|
||
C-X C-S Save file.
|
||
C-X C-Z Quit EMACS. This does NOT save your file. The
|
||
standard way to save and exit is C-X C-S C-X C-Z.
|
||
|
||
Named eXtended commands are commands which are used even less
|
||
frequently, or commands which are used only in certain modes. These
|
||
commands are usually called "functions". An example is the function
|
||
Replace String, which globally replaces one string with another. When
|
||
you type M-X, EMACS prompts you at the bottom of the screen with
|
||
M-X and you should type the name of the function you wish to call; in
|
||
this case, "Replace String". Just type "REP<Alt>" and EMACS will
|
||
complete the name. Then you type the string that you want to replace,
|
||
an <Alt>, the string you want to replace it with, and a return.
|
||
When the <Alt> is echoed, it looks like this:
|
||
|
||
>> Move the cursor to the blank line two lines below this one.
|
||
Then type M-X rep<Alt>changed<Alt>altered<Return>.
|
||
|
||
Notice how this line has changed: you've replaced
|
||
the word c-h-a-n-g-e-d with "altered" wherever it occurs
|
||
after the cursor.
|
||
|
||
|
||
MODE LINE
|
||
---------
|
||
|
||
If EMACS sees that you are typing commands slowly it shows them to you
|
||
at the bottom of the screen in an area called the echo area. The echo
|
||
area contains the bottom three lines of the screen. The line
|
||
immediately above them is called the MODE LINE. The mode line says
|
||
something like
|
||
|
||
EMACS (Fundamental) Main: filename --nn%-- *
|
||
|
||
This is a very useful "information" line.
|
||
|
||
You already know what the filename means -- it is the file you have
|
||
visited. What the --nn%-- means is that nn percent of the file is
|
||
above the top of the screen. If the top of the file is on the screen,
|
||
it will say --TOP-- instead of --00%--. If the bottom of the file is
|
||
on the screen, it will say --BOT--. If you are looking at a file so
|
||
small it all fits on the screen, the --nn%-- will simply not be there.
|
||
|
||
The star means that you have made changes to the text. Right after
|
||
you visit or save a file, there is no star.
|
||
|
||
The part of the mode line inside the parentheses is to tell you what
|
||
modes you are in. The default mode is Fundamental which is what you
|
||
are in now. It is an example of a "major mode". There are several
|
||
major modes in EMACS for editing different languages and text, such as
|
||
LISP mode, Text mode, etc. At any time one and only one major mode is
|
||
active, and its name can always be found in the mode line just where
|
||
"Fundamental" is now. Each major mode makes a few commands behave
|
||
differently. For example, there are commands for creating comments in
|
||
a program, and since each programming language has a different idea of
|
||
what a comment should look like, each major mode has to insert
|
||
comments differently. Each major mode is the name of an extended
|
||
command, which is how you get into the mode. For example,
|
||
M-X Fundamental Mode is how to get into Fundamental mode.
|
||
|
||
If you are going to be editing English text, such as this file, you
|
||
should probably use Text Mode.
|
||
>> Type M-X Text Mode<Return>.
|
||
|
||
Don't worry, none of the commands you have learned changes EMACS in
|
||
any great way. But you can now observe that periods are no longer
|
||
part of words when you do M-F or M-B! Major modes are usually like
|
||
that: commands don't change into completely unrelated things, but they
|
||
work a little bit differently.
|
||
|
||
Major modes are called major because there are also minor modes.
|
||
They are called minor because they aren't alternatives to the major
|
||
modes, just minor modifications of them. Each minor mode can be
|
||
turned on or off by itself, regardless of what major mode you are in,
|
||
and regardless of the other minor modes. So you can use no minor
|
||
modes, or one minor mode, or any combination of several minor modes.
|
||
|
||
One minor mode which is very useful, especially for editing English
|
||
text, is Auto Fill mode. When this mode is on, EMACS breaks the line
|
||
in between words automatically whenever the line gets too long. You
|
||
can turn this mode on by doing M-X Auto Fill Mode<Return>. When the
|
||
mode is on, you can turn it off by doing M-X Auto Fill Mode<Return>.
|
||
If the mode is off, this function turns it on, and if the mode is on,
|
||
this function turns it off. This is called "toggling".
|
||
|
||
>> Type M-X Auto Fill Mode<Return> now. Then insert a line of "asdf "
|
||
over again until you see it divide into two lines. You must put in
|
||
spaces between them because Auto Fill breaks lines only at spaces.
|
||
Notice that "Fill" appears in the mode line in addition to the name
|
||
of the major mode, not instead of it.
|
||
|
||
The margin is usually set at 70 characters, but you can change it
|
||
with the C-X F command. You should give the margin setting you want
|
||
as a numeric argument.
|
||
|
||
>> Type C-X F with an argument of 20. (C-U 2 0 C-X F).
|
||
Then type in some text and see EMACS fill lines of 20
|
||
characters with it. Then set the margin back to 70 using
|
||
C-X F again.
|
||
|
||
|
||
RECURSIVE EDITING LEVELS
|
||
------------------------
|
||
|
||
Sometimes you will get into what is called a "recursive editing
|
||
level". This is a command which, as part of its job, wants you to
|
||
edit some text. A good example is M-X Edit Options<Return>, which
|
||
shows you a list of many variables called options, and their values.
|
||
You can edit this list to change the values and thus turn the optional
|
||
features they control on or off. When you are done, you can say "ok"
|
||
with the command C-M-Z. If you do not have a META or EDIT key on your
|
||
terminal, type C-Z C-Z or <Alt>C-Z. This is called "exiting" the
|
||
recursive editing level. The text (the list of options) will
|
||
disappear and the changes you have made will be digested.
|
||
|
||
>> Type M-X Edit Options<Return> and see the list of options.
|
||
Find the option "Auto Fill Mode" and edit the value to be 1.
|
||
Now exit with C-Z C-Z and see that "Fill" is now present in the
|
||
mode line, and auto-filling is in effect.
|
||
Do M-X Edit Options<Return> again and set the value of the
|
||
option to 0, and exit. "Fill" will disappear from the mode line
|
||
and auto-filling will no longer be in effect.
|
||
|
||
If you change your mind about the changes you have made inside the
|
||
recursive editing level, you can "abort" instead of "exit" by typing
|
||
the C-] command. When you abort, the changes you have made will NOT
|
||
take effect.
|
||
|
||
>> Type M-X Edit Options<Return>. Set the value of Auto Fill Mode to
|
||
1 again, but instead of exiting, abort with C-].
|
||
Say "Y" when it asks you whether you mean it. You will see that
|
||
"Fill" is not there in the mode line, because by aborting you said
|
||
that your change to the value of the option should be ignored.
|
||
Do M-X Edit options<Return> again. You will see that the value of
|
||
Auto Fill Mode is still 0.
|
||
|
||
You can't use C-G to get out of a recursive editing level because C-G
|
||
is used for discarding numeric arguments and partially typed commands
|
||
WITHIN the recursive editing level.
|
||
|
||
|
||
SEARCHING
|
||
---------
|
||
|
||
EMACS can do searches for strings (these are groups of contiguous
|
||
characters or words) either forward through the file or backward
|
||
through it. To search for the string means that you are trying to
|
||
locate it somewhere in the file and have EMACS show you where the
|
||
occurrences of the string exist. This type of search is somewhat
|
||
different from what you may be familiar with. It is a search that is
|
||
performed as you type in the thing to search for. The command to
|
||
initiate a search is C-S for forward search, and C-R for reverse
|
||
search. BUT WAIT! Don't do them now. When you type C-S you'll
|
||
notice that the string "I-search" appears as a prompt in the echo
|
||
area. This tells you that EMACS is in what is called an incremental
|
||
search waiting for you to type the thing that you want to search for.
|
||
<ALT> terminates a search.
|
||
|
||
>> Now type C-S to start a search. SLOWLY, one letter at a time,
|
||
type the word 'cursor', pausing after you type each
|
||
character to notice what happens to the cursor.
|
||
>> Type C-S to find the next occurrence of "cursor".
|
||
>> Now type <Rubout> four times and see how the cursor moves.
|
||
>> Type <Alt> to terminate the search.
|
||
|
||
Did you see what happened? EMACS, in an incremental search, tries to
|
||
go to the occurrence of the string that you've typed out so far. To go
|
||
to the next occurrence of 'cursor' just type C-S again. If no such
|
||
occurrence exists EMACS beeps and tells you that it is a failing
|
||
search. C-G would also terminate the search.
|
||
|
||
If you are in the middle of an incremental search and type <Rubout>,
|
||
you'll notice that the last character in the search string is erased
|
||
and the search backs up to the last place of the search. For
|
||
instance, suppose you currently have typed 'cu' and you see that your
|
||
cursor is at the first occurrence of 'cu'. If you now type <Rubout>,
|
||
the 'u' on the search line is erased and you'll be repositioned in the
|
||
text to the occurrence of 'c' where the search took you before you
|
||
typed the 'u'. This provides a useful means for backing up while you
|
||
are searching.
|
||
|
||
If you are in the middle of a search and happen to type a control
|
||
character (other than a C-S or C-R, which tell EMACS to search for the
|
||
next occurrence of the string), the search is terminated.
|
||
|
||
The C-S starts a search that looks for any occurrence of the search
|
||
string AFTER the current cursor position. But what if you want to
|
||
search for something earlier in the text? To do this, type C-R for
|
||
Reverse search. Everything that applies to C-S applies to C-R except
|
||
that the direction of the search is reversed.
|
||
|
||
|
||
GETTING MORE HELP
|
||
-----------------
|
||
|
||
In this tutorial we have tried to supply just enough information to
|
||
get you started using EMACS. There is so much available in EMACS that
|
||
it would be impossible to explain it all here. However, you may want
|
||
to learn more about EMACS since it has numerous desirable features
|
||
that you don't know about yet. EMACS has a great deal of internal
|
||
documentation. All of these commands can be accessed through the HELP
|
||
character. {+ITS:On a TV terminal, the word "HELP" should appear on
|
||
the H key. Type the Help character by holding down TOP and typing H.}
|
||
If there is no key labelled "HELP" on your keyboard, you can type the
|
||
<HELP> character as {+ITS:C-_ H (two keystrokes, a Control-Underscore
|
||
and an H).}{+Twenex:C-M-? (Control-Meta-Question Mark = C-Z ?), or
|
||
with the <HOLD> key, on Datamedia terminals.} Be warned: many
|
||
terminals are faulty and do not allow you to type the character C-_ in
|
||
the logical way (hold down Control and type an underscore). For
|
||
example, on a VT-100 it works to hold down Control and type "/" or
|
||
"?"; on a hazeltine you have to type Control-Shift-O ! {*Refill:}
|
||
|
||
To use the HELP features, type the <HELP> character, and then a
|
||
character saying what kind of help you want. If you are REALLY lost,
|
||
type <HELP> ? and EMACS will tell you what kinds of help it can give.
|
||
If you have typed the <HELP> character and decide you don't want any
|
||
help, just type C-G to abort.{*Refill:}
|
||
|
||
The most basic HELP feature is <HELP> C. Type <HELP>, a C, and a
|
||
command character, and EMACS prints a description of the command.
|
||
When you are finished reading it, type a Space or a C-G (quit) to
|
||
bring your text back on the screen.
|
||
|
||
>> Type <HELP> C Control-P. When you are finished reading the output,
|
||
type a Space. The message should be something like
|
||
|
||
The command Control-P runs the function ^R Up Real Line:
|
||
Move up vertically to the next real line.
|
||
Continuation lines are skipped.
|
||
|
||
The "name of the function" is important for people who are customizing
|
||
EMACS. It is what appears in the EMACS CHART as the documentation for
|
||
the command character. It often starts with the characters "^R". For
|
||
now you can ignore it.
|
||
|
||
Multi-character commands such as C-X C-Z and (if you have no META or
|
||
EDIT key) <ALT>V are also allowed after <HELP> C.
|
||
|
||
Here are some other useful <HELP> options:
|
||
|
||
<HELP> D Describe a function. You type in the name of the
|
||
function. To see your text again when it is done,
|
||
type a Space or C-G.
|
||
|
||
>> Try typing <HELP> D Replace String<Return>. Then type a Space
|
||
when you are finished reading it.
|
||
|
||
<HELP> A Apropos. Type in a keyword and EMACS will list
|
||
all the functions containing that keyword. For some
|
||
functions it will also list a one or two character
|
||
command which has the same effect.
|
||
|
||
>> Type <HELP> A File<Return>. You will see a list of all functions
|
||
(M-X commands) with "file" in their names. You will also see commands
|
||
like C-X C-V and C-X C-S, listed under the corresponding function
|
||
names. When it says "--More--" at the bottom of the screen, type
|
||
a Space to see the rest of the list.
|
||
|
||
<HELP> I Run the INFO program. INFO contains the same
|
||
information as in the EMACS manual, as well as
|
||
documentation of some other system programs,
|
||
organized by topic. Here is where you can find
|
||
out about, for instance, special commands for
|
||
editing LISP code, handling buffers, replacing
|
||
text, filling and justifying text, etc.
|
||
|
||
INFO is a fairly sophisticated documentation finder which is what you
|
||
will have to use to learn more about EMACS. After you are familiar
|
||
with the material in this tutorial, you should try invoking INFO with
|
||
<HELP> I and then, as soon as you are in INFO, type H. The H will get
|
||
you INFO's tutorial, which will teach you how to use INFO just as this
|
||
has taught you how to use EMACS.
|
||
|
||
|
||
CONCLUSION
|
||
----------
|
||
|
||
Remember, to exit use C-M-Z (C-Z C-Z). You will not be screwed if you
|
||
exit with C-{+ITS:Z}{+Twenex:C} but various features will not be
|
||
provided, so it is probably wise to develop the habit of using
|
||
C-M-Z.{*Refill:}
|
||
|
||
This tutorial is meant to be understandable to all new users, so if
|
||
you found something unclear, don't sit and blame yourself - complain!
|