428
+ − 1
+ − 2 @node Display, Search, Registers, Top
+ − 3 @chapter Controlling the Display
+ − 4
+ − 5 Since only part of a large buffer fits in the window, XEmacs tries to show
+ − 6 the part that is likely to be interesting. The display control commands
+ − 7 allow you to specify which part of the text you want to see.
+ − 8
+ − 9 @table @kbd
+ − 10 @item C-l
+ − 11 Clear frame and redisplay, scrolling the selected window to center
+ − 12 point vertically within it (@code{recenter}).
+ − 13 @item C-v
+ − 14 @itemx pgdn
+ − 15 @itemx next
+ − 16 Scroll forward (a windowful or a specified number of lines) (@code{scroll-up}).
+ − 17 On most X keyboards, you can get this functionality using the key
+ − 18 labelled @samp{Page Down}, which generates either @kbd{next} or @kbd{pgdn}.
+ − 19 @item M-v
+ − 20 @itemx pgup
+ − 21 @itemx prior
+ − 22 Scroll backward (@code{scroll-down}). On most X keyboards, you can get
+ − 23 this functionality using the key labelled @samp{Page Up}, which
+ − 24 generates either @kbd{prior} or @kbd{pgup}.
+ − 25 @item @var{arg} C-l
+ − 26 Scroll so point is on line @var{arg} (@code{recenter}).
+ − 27 @item C-x <
+ − 28 @itemx C-pgdn
+ − 29 @itemx C-next
+ − 30 Scroll text in current window to the left (@code{scroll-left}).
+ − 31 @item C-x >
+ − 32 @itemx C-pgup
+ − 33 @itemx C-prior
+ − 34 Scroll to the right (@code{scroll-right}).
+ − 35 @item C-x $
+ − 36 Make deeply indented lines invisible (@code{set-selective-display}).
+ − 37 @end table
+ − 38
+ − 39 @menu
+ − 40 * Scrolling:: Moving text up and down in a window.
+ − 41 * Horizontal Scrolling:: Moving text left and right in a window.
+ − 42 * Selective Display:: Hiding lines with lots of indentation.
+ − 43 * Display Vars:: Information on variables for customizing display.
+ − 44 @end menu
+ − 45
+ − 46 @node Scrolling, Horizontal Scrolling, Display, Display
+ − 47 @section Scrolling
+ − 48
+ − 49 If a buffer contains text that is too large to fit entirely within the
+ − 50 window that is displaying the buffer, XEmacs shows a contiguous section of
+ − 51 the text. The section shown always contains point.
+ − 52
+ − 53 @cindex scrolling
+ − 54 @dfn{Scrolling} means moving text up or down in the window so that
+ − 55 different parts of the text are visible. Scrolling forward means that text
+ − 56 moves up, and new text appears at the bottom. Scrolling backward moves
+ − 57 text down and new text appears at the top.
+ − 58
+ − 59 Scrolling happens automatically if you move point past the bottom or top
+ − 60 of the window. You can also explicitly request scrolling with the commands
+ − 61 in this section.
+ − 62
+ − 63 @ifinfo
+ − 64 @table @kbd
+ − 65 @item C-l
+ − 66 Clear frame and redisplay, scrolling the selected window to center
+ − 67 point vertically within it (@code{recenter}).
+ − 68 @item C-v
+ − 69 @itemx pgdn
+ − 70 @itemx next
+ − 71 Scroll forward (a windowful or a specified number of lines) (@code{scroll-up}).
+ − 72 @item M-v
+ − 73 @itemx pgup
+ − 74 @itemx prior
+ − 75 Scroll backward (@code{scroll-down}).
+ − 76 @item @var{arg} C-l
+ − 77 Scroll so point is on line @var{arg} (@code{recenter}).
+ − 78 @end table
+ − 79 @end ifinfo
+ − 80
+ − 81 @kindex C-l
+ − 82 @findex recenter
+ − 83 The most basic scrolling command is @kbd{C-l} (@code{recenter}) with no
+ − 84 argument. It clears the entire frame and redisplays all windows. In
+ − 85 addition, it scrolls the selected window so that point is halfway down
+ − 86 from the top of the window.
+ − 87
+ − 88 @kindex C-v
+ − 89 @kindex M-v
+ − 90 @kindex pgup
+ − 91 @kindex pgdn
+ − 92 @kindex next
+ − 93 @kindex prior
+ − 94 @findex scroll-up
+ − 95 @findex scroll-down
+ − 96 The scrolling commands @kbd{C-v} and @kbd{M-v} let you move all the text
+ − 97 in the window up or down a few lines. @kbd{C-v} (@code{scroll-up}) with an
+ − 98 argument shows you that many more lines at the bottom of the window, moving
+ − 99 the text and point up together as @kbd{C-l} might. @kbd{C-v} with a
+ − 100 negative argument shows you more lines at the top of the window.
+ − 101 @kbd{Meta-v} (@code{scroll-down}) is like @kbd{C-v}, but moves in the
+ − 102 opposite direction.@refill
+ − 103
+ − 104 @vindex next-screen-context-lines
+ − 105 To read the buffer a windowful at a time, use @kbd{C-v} with no
+ − 106 argument. @kbd{C-v} takes the last two lines at the bottom of the
+ − 107 window and puts them at the top, followed by nearly a whole windowful of
+ − 108 lines not previously visible. Point moves to the new top of the window
+ − 109 if it was in the text scrolled off the top. @kbd{M-v} with no argument
+ − 110 moves backward with similar overlap. The number of lines of overlap
+ − 111 across a @kbd{C-v} or @kbd{M-v} is controlled by the variable
+ − 112 @code{next-screen-context-lines}; by default, it is two.
+ − 113
+ − 114 Another way to scroll is using @kbd{C-l} with a numeric argument.
+ − 115 @kbd{C-l} does not clear the frame when given an argument; it only
+ − 116 scrolls the selected window. With a positive argument @var{n}, @kbd{C-l}
+ − 117 repositions text to put point @var{n} lines down from the top. An
+ − 118 argument of zero puts point on the very top line. Point does not move
+ − 119 with respect to the text; rather, the text and point move rigidly on the
+ − 120 frame. @kbd{C-l} with a negative argument puts point that many lines
+ − 121 from the bottom of the window. For example, @kbd{C-u - 1 C-l} puts
+ − 122 point on the bottom line, and @kbd{C-u - 5 C-l} puts it five lines from
+ − 123 the bottom. Just @kbd{C-u} as argument, as in @kbd{C-u C-l}, scrolls
+ − 124 point to the center of the frame.
+ − 125
+ − 126 @vindex scroll-step
+ − 127 Scrolling happens automatically if point has moved out of the visible
+ − 128 portion of the text when it is time to display. Usually scrolling is
+ − 129 done to put point vertically centered within the window. However, if
+ − 130 the variable @code{scroll-step} has a non-zero value, an attempt is made to
+ − 131 scroll the buffer by that many lines; if that is enough to bring point back
+ − 132 into visibility, that is what happens.
+ − 133
+ − 134 Scrolling happens automatically if point has moved out of the visible
+ − 135 portion of the text when it is time to display. Usually scrolling is
+ − 136 done to put point vertically centered within the window. However, if
+ − 137 the variable @code{scroll-step} has a non-zero value, an attempt is made to
+ − 138 scroll the buffer by that many lines; if that is enough to bring point back
+ − 139 into visibility, that is what happens.
+ − 140
+ − 141 @vindex scroll-conservatively
+ − 142 If you set @code{scroll-step} to a small value because you want to use
+ − 143 arrow keys to scroll the screen without recentering, the redisplay
+ − 144 preemption will likely make XEmacs keep recentering the screen when
+ − 145 scrolling fast, regardless of @code{scroll-step}. To prevent this, set
+ − 146 @code{scroll-conservatively} to a small value, which will have the
+ − 147 result of overriding the redisplay preemption.
+ − 148
+ − 149 @node Horizontal Scrolling,, Scrolling, Display
+ − 150 @section Horizontal Scrolling
+ − 151
+ − 152 @ifinfo
+ − 153 @table @kbd
+ − 154 @item C-x <
+ − 155 Scroll text in current window to the left (@code{scroll-left}).
+ − 156 @item C-x >
+ − 157 Scroll to the right (@code{scroll-right}).
+ − 158 @end table
+ − 159 @end ifinfo
+ − 160
+ − 161 @kindex C-x <
+ − 162 @kindex C-x >
+ − 163 @findex scroll-left
+ − 164 @findex scroll-right
+ − 165 @cindex horizontal scrolling
+ − 166 The text in a window can also be scrolled horizontally. This means that
+ − 167 each line of text is shifted sideways in the window, and one or more
+ − 168 characters at the beginning of each line are not displayed at all. When a
+ − 169 window has been scrolled horizontally in this way, text lines are truncated
+ − 170 rather than continued (@pxref{Continuation Lines}), with a @samp{$} appearing
+ − 171 in the first column when there is text truncated to the left, and in the
+ − 172 last column when there is text truncated to the right.
+ − 173
+ − 174 The command @kbd{C-x <} (@code{scroll-left}) scrolls the selected
+ − 175 window to the left by @var{n} columns with argument @var{n}. With no
+ − 176 argument, it scrolls by almost the full width of the window (two columns
+ − 177 less, to be precise). @kbd{C-x >} (@code{scroll-right}) scrolls
+ − 178 similarly to the right. The window cannot be scrolled any farther to
+ − 179 the right once it is displaying normally (with each line starting at the
+ − 180 window's left margin); attempting to do so has no effect.
+ − 181
+ − 182 @node Selective Display, Display Vars, Display, Display
+ − 183 @section Selective Display
+ − 184 @findex set-selective-display
+ − 185 @kindex C-x $
+ − 186
+ − 187 XEmacs can hide lines indented more than a certain number
+ − 188 of columns (you specify how many columns). This allows you to get an
+ − 189 overview of a part of a program.
+ − 190
+ − 191 To hide lines, type @kbd{C-x $} (@code{set-selective-display}) with a
+ − 192 numeric argument @var{n}. (@xref{Arguments}, for information on giving
+ − 193 the argument.) Lines with at least @var{n} columns of indentation
+ − 194 disappear from the screen. The only indication of their presence are
+ − 195 three dots (@samp{@dots{}}), which appear at the end of each visible
+ − 196 line that is followed by one or more invisible ones.@refill
+ − 197
+ − 198 The invisible lines are still present in the buffer, and most editing
+ − 199 commands see them as usual, so it is very easy to put point in the middle
+ − 200 of invisible text. When this happens, the cursor appears at the end of the
+ − 201 previous line, after the three dots. If point is at the end of the visible
+ − 202 line, before the newline that ends it, the cursor appears before the three
+ − 203 dots.
+ − 204
+ − 205 The commands @kbd{C-n} and @kbd{C-p} move across the invisible lines
+ − 206 as if they were not there.
+ − 207
+ − 208 To make everything visible again, type @kbd{C-x $} with no argument.
+ − 209
+ − 210 @node Display Vars,, Selective Display, Display
+ − 211 @section Variables Controlling Display
+ − 212
+ − 213 This section contains information for customization only. Beginning
+ − 214 users should skip it.
+ − 215
+ − 216 @vindex no-redraw-on-reenter
+ − 217 When you reenter XEmacs after suspending, XEmacs normally clears the
+ − 218 screen and redraws the entire display. On some terminals with more than
+ − 219 one page of memory, it is possible to arrange the termcap entry so that
+ − 220 the @samp{ti} and @samp{te} strings (output to the terminal when XEmacs
+ − 221 is entered and exited, respectively) switch between pages of memory so
+ − 222 as to use one page for XEmacs and another page for other output. In that
+ − 223 case, you might want to set the variable @code{no-redraw-on-reenter} to
+ − 224 non-@code{nil} so that XEmacs will assume, when resumed, that the screen
+ − 225 page it is using still contains what XEmacs last wrote there.
+ − 226
+ − 227 @vindex echo-keystrokes
+ − 228 The variable @code{echo-keystrokes} controls the echoing of multi-character
+ − 229 keys; its value is the number of seconds of pause required to cause echoing
+ − 230 to start, or zero, meaning don't echo at all. @xref{Echo Area}.
+ − 231
+ − 232 @vindex ctl-arrow
+ − 233 If the variable @code{ctl-arrow} is @code{nil}, control characters in the
+ − 234 buffer are displayed with octal escape sequences, all except newline and
+ − 235 tab. If its value is @code{t}, then control characters will be printed
+ − 236 with an up-arrow, for example @kbd{^A}.
+ − 237
+ − 238 If its value is not @code{t} and not @code{nil}, then characters whose
+ − 239 code is greater than 160 (that is, the space character (32) with its
+ − 240 high bit set) will be assumed to be printable, and will be displayed
+ − 241 without alteration. This is the default when running under X Windows,
+ − 242 since XEmacs assumes an ISO/8859-1 character set (also known as
+ − 243 ``Latin1''). The @code{ctl-arrow} variable may also be set to an
+ − 244 integer, in which case all characters whose codes are greater than or
+ − 245 equal to that value will be assumed to be printable.
+ − 246
+ − 247 Altering the value of @code{ctl-arrow} makes it local to the current
+ − 248 buffer; until that time, the default value is in effect. @xref{Locals}.
+ − 249
+ − 250 @vindex tab-width
+ − 251 Normally, a tab character in the buffer is displayed as whitespace which
+ − 252 extends to the next display tab stop position, and display tab stops come
+ − 253 at intervals equal to eight spaces. The number of spaces per tab is
+ − 254 controlled by the variable @code{tab-width}, which is made local by
+ − 255 changing it, just like @code{ctl-arrow}. Note that how the tab character
+ − 256 in the buffer is displayed has nothing to do with the definition of
+ − 257 @key{TAB} as a command.
+ − 258
+ − 259 @vindex selective-display-ellipses
+ − 260 If you set the variable @code{selective-display-ellipses} to @code{nil},
+ − 261 the three dots at the end of a line that precedes invisible
+ − 262 lines do not appear. There is no visible indication of the invisible lines.
+ − 263 This variable becomes local automatically when set.