8.2 Changing the Location of Point
To do more than insert characters, you have to know how to move point
(see Point). The simplest way to do this is with arrow keys, or by
clicking the left mouse button where you want to move to.
There are also control and meta characters for cursor motion. Some
are equivalent to the arrow keys (these date back to the days before
terminals had arrow keys, and are usable on terminals which don't have
them). Others do more sophisticated things.
- Move to the beginning of the line (
- Move to the end of the line (
- Move forward one character (
forward-char). The right-arrow key
does the same thing.
- Move backward one character (
backward-char). The left-arrow
key has the same effect.
- Move forward one word (
- Move backward one word (
- Move down one line, vertically (
next-line). 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. The
down-arrow key does the same thing.
- Move up one line, vertically (
previous-line). The up-arrow key
has the same effect.
- Move point to left margin, vertically centered in the window
move-to-window-line). Text does not move on the screen.
A numeric argument says which screen line to place point on. It counts
screen lines down from the top of the window (zero for the top line). A
negative argument counts lines from the bottom (−1 for the bottom
- Move to the top of the buffer (
numeric argument n, move to n/10 of the way from the top.
See Arguments, for more information on numeric arguments.
- Move to the end of the buffer (
- Scroll the display one screen forward, and move point if necessary to
put it on the screen (
scroll-up). This doesn't always move
point, but it is commonly used to do so. If your keyboard has a
<PAGEDOWN> or <PRIOR> key, it does the same thing.
Scrolling commands are further described in Scrolling.
- Scroll one screen backward, and move point if necessary to put it on
the screen (
scroll-down). This doesn't always move point, but
it is commonly used to do so. If your keyboard has a <PAGEUP> or
<NEXT> key, it does the same thing.
- M-x goto-char
- Read a number n and move point to buffer position n.
Position 1 is the beginning of the buffer.
- M-g M-g
- M-g g
- M-x goto-line
- Read a number n and move point to the beginning of line number
n. Line 1 is the beginning of the buffer. If point is on or
just after a number, then that is the default for n, if you just
press <RET> with an empty minibuffer.
- 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 stick to a fixed horizontal position, as usual.
If you set the variable
track-eol to a non-
then C-n and C-p, when starting at the end of the line, move
to the end of another line. Normally,
See Variables, for how to set variables such as
C-n normally stops at the end of the buffer when you use it on
the last line of the buffer. But if you set the variable
next-line-add-newlines to a non-
nil value, C-n on
the last line of a buffer creates an additional line at the end and
moves down onto it.