GNU Info

Info Node: (emacs)Scrolling

(emacs)Scrolling


Next: Horizontal Scrolling Prev: Trailing Whitespace Up: Display
Enter node , (file) or (file)node

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 means that
text moves up, and new text appears at the bottom.  Scrolling backward
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 explicitly request scrolling with the
commands in this section.

`C-l'
     Clear screen and redisplay, scrolling the selected window to center
     point vertically within it (`recenter').

`C-v'
     Scroll forward (a windowful or a specified number of lines)
     (`scroll-up').

`<NEXT>'
`<PAGEDOWN>'
     Likewise, scroll forward.

`M-v'
     Scroll backward (`scroll-down').

`<PRIOR>'
`<PAGEUP>'
     Likewise, scroll backward.

`ARG C-l'
     Scroll so point is on line ARG (`recenter').

`C-M-l'
     Scroll heuristically to bring useful information onto the screen
     (`reposition-window').

   The most basic scrolling command is `C-l' (`recenter') with no
argument.  It clears the entire screen and redisplays all windows.  In
addition, it scrolls the selected window so that point is halfway down
from the top of the window.

   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 across a `C-v'
or `M-v' 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.  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.

   Scrolling happens automatically when point moves out of the visible
portion of the text.  Normally, automatic scrolling centers point
vertically within the window.  However, if you set
`scroll-conservatively' to a small number N, then if you move point
just a little off the screen--less than N lines--then Emacs scrolls the
text just far enough to bring point back on screen.  By default,
`scroll-conservatively' is 0.

   When the window does scroll by a longer distance, you can control
how aggressively it scrolls, by setting the variables
`scroll-up-aggressively' and `scroll-down-aggressively'.  The value of
`scroll-up-aggressively' should be either `nil', or a fraction F
between 0 and 1.  A fraction specifies where on the screen to put point
when scrolling upward.  More precisely, when a window scrolls up
because point is above the window start, the new start position is
chosen to put point F part of the window height from the top.  The
larger F, the more aggressive the scrolling.

   `nil', which is the default, scrolls to put point at the center.  So
it is equivalent to .5.

   Likewise, `scroll-down-aggressively' is used for scrolling down.
The value, F, specifies how far point should be placed from the bottom
of the window; thus, as with `scroll-up-aggressively', a larger value
is more aggressive.

   The variable `scroll-margin' restricts how close point can come to
the top or bottom of a window.  Its value is a number of screen lines;
if point comes within that many lines of the top or bottom of the
window, Emacs recenters the window.  By default, `scroll-margin' is 0.


automatically generated by info2www version 1.2.2.9