Emacs de base



next up previous


Emacs de base

   We now give the basics of how to enter text, make corrections, and
save the text in a file.  If this material is new to you, you might
learn it more easily by running the Emacs learn-by-doing tutorial.  To
do this, type `Control-h t' (`help-with-tutorial').

Inserting Text
==============

   To insert printing characters into the text you are editing, just
type them.  This inserts the character into the buffer at the cursor
(that is, at "point"; *note Point::.).  The cursor moves forward.  Any
characters after the cursor move forward too.  If the text in the
buffer is `FOOBAR', with the cursor before the `B', then if you type
`XX', you get `FOOXXBAR', with the cursor still before the `B'.

   To "deletë text you have just inserted, use DEL.  DEL deletes the
character BEFORE the cursor (not the one that the cursor is on top of
or under; that is the character AFTER the cursor).  The cursor and all
characters after it move backwards.  Therefore, if you type a printing
character and then type DEL, they cancel out.

   To end a line and start typing a new one, type RET.  This inserts a
newline character in the buffer.  If point is in the middle of a line,
RET splits the line.  Typing DEL when the cursor is at the beginning
of a line rubs out the newline before the line, thus joining the line
with the preceding line.

   Emacs will split lines automatically when they become too long, if
you turn on a special mode called "Auto Fill" mode.  *Note Filling::,
for how to use Auto Fill mode.

   Customization information: DEL in most modes runs the command named
`delete-backward-char'; RET runs the command `newliné, and
self-inserting printing characters run the command `self-insert',
which inserts whatever character was typed to invoke it.  Some major
modes rebind DEL to other commands.

   Direct insertion works for printing characters and SPC, but other
characters act as editing commands and do not insert themselves.  If
you need to insert a control character or a character whose code is
above 200 octal, you must "quotë it by typing the character
`control-q' (`quoted-insert') first.  There are two ways to use `C-q':

   * `Control-q' followed by any non-graphic character (even `C-g')
     inserts that character.

   * `Control-q' followed by three octal digits inserts the character
     with the specified character code.

A numeric argument to `C-q' specifies how many copies of the quoted
character should be inserted (*note Arguments::.).

   If you prefer to have text characters replace (overwrite) existing
text rather than shove it to the right, you can enable Overwrite mode,
a minor mode.  *Note Minor Modes::.

Changing the Location of Point
==============================

   To do more than insert characters, you have to know how to move
point (*note Point::.).  Here are a few of the commands for doing that.

`C-a'
     Move to the beginning of the line (`beginning-of-liné).

`C-é
     Move to the end of the line (`end-of-liné).

`C-f'
     Move forward one character (`forward-char').

`C-b'
     Move backward one character (`backward-char').

`M-f'
     Move forward one word (`forward-word').

`M-b'
     Move backward one word (`backward-word').

`C-n'
     Move down one line, vertically (`next-liné).  This command
     attempts to keep the horizontal position unchanged, so if you
     start in the middle of one line, you end in the middle of the
     next.  When on the last line of text, `C-n' creates a new line
     and moves onto it.

`C-p'
     Move up one line, vertically (`previous-liné).

`C-l'
     Clear the screen and reprint everything (`recenter').  Text moves
     on the screen to bring point to the center of the window.

`M-r'
     Move point to left margin on the line halfway down the screen or
     window (`move-to-window-liné).  Text does not move on the
     screen.  A numeric argument says how many screen lines down from
     the top of the window (zero for the top).  A negative argument
     counts from the bottom (-1 for the bottom).

`C-t'
     Transpose two characters, the ones before and after the cursor
     (`transpose-chars').

`M-<'
     Move to the top of the buffer (`beginning-of-buffer').  With
     numeric argument N, move to N/10 of the way from the top.  *Note
     Arguments::, for more information on numeric arguments.

`M->'
     Move to the end of the buffer (`end-of-buffer').

`M-x goto-char'
     Read a number N and move cursor to character number N.  Position
     1 is the beginning of the buffer.

`M-x goto-liné
     Read a number N and move cursor to line number N.  Line 1 is the
     beginning of the buffer.

`C-x C-n'
     Use the current column of point as the "semipermanent goal
     column" for `C-n' and `C-p' (`set-goal-column').  Henceforth,
     those commands always move to this column in each line moved
     into, or as close as possible given the contents of the line. 
     This goal column remains in effect until canceled.

`C-u C-x C-n'
     Cancel the goal column.  Henceforth, `C-n' and `C-p' once again
     try to avoid changing the horizontal position, as usual.

   If you set the variable `track-eol' to a non-`nil' value, then
`C-n' and `C-p' when at the end of the starting line move to the end
of the line.  Normally, `track-eol' is `nil'.

Erasing Text
============

`DEL'
     Delete the character before the cursor (`delete-backward-char').

`C-d'
     Delete the character after the cursor (`delete-char').

`C-k'
     Kill to the end of the line (`kill-liné).

`M-d'
     Kill forward to the end of the next word (`kill-word').

`M-DEL'
     Kill back to the beginning of the previous word
     (`backward-kill-word').

   You already know about the DEL key which deletes the character
before the cursor.  Another key, `Control-d', deletes the character
after the cursor, causing the rest of the text on the line to shift
left.  If `Control-d' is typed at the end of a line, that line and the
next line are joined together.

   To erase a larger amount of text, use the `Control-k' key, which
kills a line at a time.  If `C-k' is done at the beginning or middle of
a line, it kills all the text up to the end of the line.  If `C-k' is
done at the end of a line, it joins that line and the next line.

   *Note Killing::, for more flexible ways of killing text.

Files
=====

   The commands above are sufficient for creating and altering text in
an Emacs buffer; the more advanced Emacs commands just make things
easier.  But to keep any text permanently you must put it in a "filë.
 Files are named units of text which are stored by the operating
system for you to retrieve later by name.  To look at or use the
contents of a file in any way, including editing the file with Emacs,
you must specify the file name.

   Consider a file named `/usr/rms/foo.c'.  In Emacs, to begin editing
this file, type

     C-x C-f /usr/rms/foo.c RET

Here the file name is given as an "argument" to the command `C-x C-f'
(`find-filé).  That command uses the "minibuffer" to read the
argument, and you type RET to terminate the argument (*note
Minibuffer::.).

   Emacs obeys the command by "visiting" the file: creating a buffer,
copying the contents of the file into the buffer, and then displaying
the buffer for you to edit.  You can make changes in it, and then
"savë the file by typing `C-x C-s' (`save-buffer').  This makes the
changes permanent by copying the altered contents of the buffer back
into the file `/usr/rms/foo.c'.  Until then, the changes are only
inside your Emacs, and the file `foo.c' is not changed.

   To create a file, just visit the file with `C-x C-f' as if it
already existed.  Emacs will make an empty buffer in which you can
insert the text you want to put in the file.  When you save your text
with `C-x C-s', the file will be created.

   Of course, there is a lot more to learn about using files.  *Note
Files::.

Help
====

   If you forget what a key does, you can find out with the Help
character, which is `C-h'.  Type `C-h k' followed by the key you want
to know about; for example, `C-h k C-n' tells you all about what `C-n'
does.  `C-h' is a prefix key; `C-h k' is just one of its subcommands
(the command `describe-key').  The other subcommands of `C-h' provide
different kinds of help.  Type `C-h' three times to get a description
of all the help facilities.  *Note Help::.