GNU Info

Info Node: (elisp)Textual Scrolling

(elisp)Textual Scrolling


Next: Vertical Scrolling Prev: Window Start Up: Windows
Enter node , (file) or (file)node

Textual Scrolling
=================

   "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 (Note: Vertical 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.  Note: Current
Buffer.

 - Command: scroll-up &optional count
     This function scrolls the text in the selected window upward COUNT
     lines.  If COUNT is negative, scrolling is actually downward.

     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'.

 - Command: scroll-down &optional count
     This function scrolls the text in the selected window downward
     COUNT lines.  If COUNT is negative, scrolling is actually upward.

     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'.

 - Command: scroll-other-window &optional count
     This function scrolls the text in another window upward COUNT
     lines.  Negative values of COUNT, or `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.  Note: Minibuffer
     Misc.

     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".

 - Variable: other-window-scroll-buffer
     If this variable is non-`nil', it tells `scroll-other-window'
     which buffer to scroll.

 - User Option: scroll-margin
     This option specifies the size of the scroll margin--a minimum
     number of lines between point and the top or bottom of a window.
     Whenever point gets within this many lines of the top or bottom of
     the window, the window scrolls automatically (if possible) to move
     point out of the margin, closer to the center of the window.

 - User Option: scroll-conservatively
     This variable controls how scrolling is done automatically when
     point moves off the screen (or into the scroll margin).  If the
     value is zero, then redisplay scrolls the text to center point
     vertically in the window.  If the value is a positive integer N,
     then redisplay scrolls the window up to N lines in either
     direction, if that will bring point back into view.  Otherwise, it
     centers point.  The default value is zero.

     A value of `nil' is equivalent to .5, since it centers point.  This
     variable automatically becomes buffer-local when set in any
     fashion.

 - User Option: scroll-up-aggressively
     The value of this variable should be either `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 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.

     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.

 - User Option: scroll-down-aggressively
     Likewise, 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 scrolls more aggressively.

 - User Option: scroll-step
     This variable is an older variant of `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.

 - User Option: scroll-preserve-screen-position
     If this option is non-`nil', the scroll functions move point so
     that the vertical position of the cursor is unchanged, when that is
     possible.

 - User Option: next-screen-context-lines
     The value of this variable is the number of lines of continuity to
     retain when scrolling by full screens.  For example, `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'.

 - Command: recenter &optional count
     This function scrolls the selected window to put the text where
     point is located at a specified vertical position within the
     window.

     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)


automatically generated by info2www version 1.2.2.9