[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Textual scrolling means moving the text up or down though a
window. It works by changing the value of the window's display-start
location. It may also change the value of window-point
to keep
point on the screen.
Textual scrolling was formerly called "vertical scrolling," but we changed its name to distinguish it from the new vertical fractional scrolling feature (see section 28.12 Vertical Fractional Scrolling).
In the commands scroll-up
and scroll-down
, the directions
"up" and "down" refer to the motion of the text in the buffer at which
you are looking through the window. Imagine that the text is
written on a long roll of paper and that the scrolling commands move the
paper up and down. Thus, if you are looking at text in the middle of a
buffer and repeatedly call scroll-down
, you will eventually see
the beginning of the buffer.
Some people have urged that the opposite convention be used: they imagine that the window moves over text that remains in place. Then "down" commands would take you to the end of the buffer. This view is more consistent with the actual relationship between windows and the text in the buffer, but it is less like what the user sees. The position of a window on the terminal does not move, and short scrolling commands clearly move the text up or down on the screen. We have chosen names that fit the user's point of view.
The textual scrolling functions (aside from
scroll-other-window
) have unpredictable results if the current
buffer is different from the buffer that is displayed in the selected
window. See section 27.2 The Current Buffer.
If count is nil
(or omitted), then the length of scroll
is next-screen-context-lines
lines less than the usable height of
the window (not counting its mode line).
scroll-up
returns nil
.
If count is omitted or nil
, then the length of the scroll
is next-screen-context-lines
lines less than the usable height of
the window (not counting its mode line).
scroll-down
returns nil
.
nil
, are handled
as in scroll-up
.
You can specify which buffer to scroll by setting the variable
other-window-scroll-buffer
to a buffer. If that buffer isn't
already displayed, scroll-other-window
displays it in some
window.
When the selected window is the minibuffer, the next window is normally
the one at the top left corner. You can specify a different window to
scroll, when the minibuffer is selected, by setting the variable
minibuffer-scroll-window
. This variable has no effect when any
other window is selected. See section 20.9 Minibuffer Miscellany.
When the minibuffer is active, it is the next window if the selected
window is the one at the bottom right corner. In this case,
scroll-other-window
attempts to scroll the minibuffer. If the
minibuffer contains just one line, it has nowhere to scroll to, so the
line reappears after the echo area momentarily displays the message
"Beginning of buffer".
nil
, it tells scroll-other-window
which buffer to scroll.
nil
or a fraction
f between 0 and 1. If it is a fraction, that specifies where on
the screen to put point when scrolling down. More precisely, when a
window scrolls down 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.
A value of nil
is equivalent to .5, since its effect is to center
point. This variable automatically becomes buffer-local when set in any
fashion.
scroll-up-aggressively
, a larger value scrolls more aggressively.
scroll-conservatively
. The
difference is that it if its value is n, that permits scrolling
only by precisely n lines, not a smaller number. This feature
does not work with scroll-margin
. The default value is zero.
nil
, the scroll functions move point so
that the vertical position of the cursor is unchanged, when that is
possible.
scroll-up
with an argument of nil
scrolls so that this many lines at the
bottom of the window appear instead at the top. The default value is
2
.
If count is a nonnegative number, it puts the line containing
point count lines down from the top of the window. If count
is a negative number, then it counts upward from the bottom of the
window, so that -1 stands for the last usable line in the window.
If count is a non-nil
list, then it stands for the line in
the middle of the window.
If count is nil
, recenter
puts the line containing
point in the middle of the window, then clears and redisplays the entire
selected frame.
When recenter
is called interactively, count is the raw
prefix argument. Thus, typing C-u as the prefix sets the
count to a non-nil
list, while typing C-u 4 sets
count to 4, which positions the current line four lines from the
top.
With an argument of zero, recenter
positions the current line at
the top of the window. This action is so handy that some people make a
separate key binding to do this. For example,
(defun line-to-top-of-window () "Scroll current line to top of window. Replaces three keystroke sequence C-u 0 C-l." (interactive) (recenter 0)) (global-set-key [kp-multiply] 'line-to-top-of-window) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |