manpagez: man pages & more
info emacs
Home | html | info | man
[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

19.1 Scrolling

If a buffer contains text that is too large to fit entirely within a window that is displaying the buffer, Emacs shows a contiguous portion of the text. The portion shown always contains point.

Scrolling means moving text up or down in the window so that different parts of the text are visible. Scrolling “forward” or “up” means that text moves up, and new text appears at the bottom. Scrolling “backward” or “down” moves text down, and new text appears at the top.

Scrolling happens automatically if you move point past the bottom or top of the window. You can also scroll explicitly with the commands in this section.


Clear screen and redisplay, scrolling the selected window to center point vertically within it (recenter).


Scroll forward (a windowful or a specified number of lines) (scroll-up).


Likewise, scroll forward.


Scroll backward (scroll-down).


Likewise, scroll backward.

arg C-l

Scroll so point is on line arg (recenter).


Scroll heuristically to bring useful information onto the screen (reposition-window).

The most basic scrolling command is C-l (recenter) with no argument. It scrolls the selected window so that point is halfway down from the top of the window. On a text terminal, it also clears the screen and redisplays all windows. That is useful in case the screen is garbled (see section Garbage on the Screen).

To read the buffer a windowful at a time, use C-v (scroll-up) with no argument. This scrolls forward by nearly the whole window height. The effect is to take the two lines at the bottom of the window and put them at the top, followed by nearly a whole windowful of lines that were not previously visible. If point was in the text that scrolled off the top, it ends up at the new top of the window.

M-v (scroll-down) with no argument scrolls backward in a similar way, also with overlap. The number of lines of overlap that the C-v or M-v commands leave is controlled by the variable next-screen-context-lines; by default, it is 2. The function keys <NEXT> and <PRIOR>, or <PAGEDOWN> and <PAGEUP>, are equivalent to C-v and M-v.

The commands C-v and M-v with a numeric argument scroll the text in the selected window up or down a few lines. C-v with an argument moves the text and point up, together, that many lines; it brings the same number of new lines into view at the bottom of the window. M-v with numeric argument scrolls the text downward, bringing that many new lines into view at the top of the window. C-v with a negative argument is like M-v and vice versa.

The names of scroll commands are based on the direction that the text moves in the window. Thus, the command to scroll forward is called scroll-up because it moves the text upward on the screen. The keys <PAGEDOWN> and <PAGEUP> derive their names and customary meanings from a different convention that developed elsewhere; hence the strange result that <PAGEDOWN> runs scroll-up.

Some users like the full-screen scroll commands to keep point at the same screen line. To enable this behavior, set the variable scroll-preserve-screen-position to a non-nil value. In this mode, when these commands would scroll the text around point off the screen, or within scroll-margin lines of the edge, they move point to keep the same vertical position within the window. This mode is convenient for browsing through a file by scrolling by screenfuls; if you come back to the screen where you started, point goes back to the line where it started. However, this mode is inconvenient when you move to the next screen in order to move point to the text there.

Another way to do scrolling is with C-l with a numeric argument. C-l does not clear the screen when given an argument; it only scrolls the selected window. With a positive argument n, it repositions text to put point n lines down from the top. An argument of zero puts point on the very top line. Point does not move with respect to the text; rather, the text and point move rigidly on the screen. C-l with a negative argument puts point that many lines from the bottom of the window. For example, C-u - 1 C-l puts point on the bottom line, and C-u - 5 C-l puts it five lines from the bottom. C-u C-l scrolls to put point at the center (vertically) of the selected window.

The C-M-l command (reposition-window) scrolls the current window heuristically in a way designed to get useful information onto the screen. For example, in a Lisp file, this command tries to get the entire current defun onto the screen if possible.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]
© 2000-2024
Individual documents may contain additional copyright information.