Commit | Line | Data |
---|---|---|
6bf7aab6 | 1 | @c This is part of the Emacs manual. |
73b0cd50 GM |
2 | @c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 |
3 | @c Free Software Foundation, Inc. | |
6bf7aab6 DL |
4 | @c See file emacs.texi for copying conditions. |
5 | @node Windows, Frames, Buffers, Top | |
6 | @chapter Multiple Windows | |
7 | @cindex windows in Emacs | |
8 | @cindex multiple windows in Emacs | |
9 | ||
10 | Emacs can split a frame into two or many windows. Multiple windows | |
11 | can display parts of different buffers, or different parts of one | |
12 | buffer. Multiple frames always imply multiple windows, because each | |
13 | frame has its own set of windows. Each window belongs to one and only | |
14 | one frame. | |
15 | ||
16 | @menu | |
17 | * Basic Window:: Introduction to Emacs windows. | |
18 | * Split Window:: New windows are made by splitting existing windows. | |
19 | * Other Window:: Moving to another window or doing something to it. | |
20 | * Pop Up Window:: Finding a file or buffer in another window. | |
6bf7aab6 | 21 | * Change Window:: Deleting windows and changing their sizes. |
0a2132ba | 22 | * Displaying Buffers:: How Emacs picks a window for displaying a buffer. |
88968b11 | 23 | * Window Convenience:: Convenience functions for window handling. |
6bf7aab6 DL |
24 | @end menu |
25 | ||
26 | @node Basic Window | |
27 | @section Concepts of Emacs Windows | |
28 | ||
29 | Each Emacs window displays one Emacs buffer at any time. A single | |
30 | buffer may appear in more than one window; if it does, any changes in | |
3b47541d RS |
31 | its text are displayed in all the windows where it appears. But these |
32 | windows can show different parts of the buffer, because each window | |
33 | has its own value of point. | |
6bf7aab6 DL |
34 | |
35 | @cindex selected window | |
3b47541d | 36 | At any time, one Emacs window is the @dfn{selected window}; the |
0cbaa1d5 CY |
37 | buffer this window is displaying is the current buffer. On graphical |
38 | displays, the point is indicated by a solid blinking cursor in the | |
39 | selected window, and by a hollow box in non-selected windows. On | |
40 | text-only terminals, the cursor is drawn only in the selected window. | |
41 | @xref{Cursor Display}. | |
291d142b CY |
42 | |
43 | Commands to move point affect the value of point for the selected | |
44 | Emacs window only. They do not change the value of point in other | |
45 | Emacs windows, even those showing the same buffer. The same is true | |
46 | for buffer-switching commands such as @kbd{C-x b}; they do not affect | |
47 | other windows at all. However, there are other commands such as | |
48 | @kbd{C-x 4 b} that select a different window and switch buffers in it. | |
49 | Also, all commands that display information in a window, including | |
6bf7aab6 | 50 | (for example) @kbd{C-h f} (@code{describe-function}) and @kbd{C-x C-b} |
291d142b CY |
51 | (@code{list-buffers}), work by switching buffers in a nonselected |
52 | window without affecting the selected window. | |
6bf7aab6 DL |
53 | |
54 | When multiple windows show the same buffer, they can have different | |
55 | regions, because they can have different values of point. However, | |
56 | they all have the same value for the mark, because each buffer has | |
57 | only one mark position. | |
58 | ||
59 | Each window has its own mode line, which displays the buffer name, | |
60 | modification status and major and minor modes of the buffer that is | |
a08ff74c | 61 | displayed in the window. The selected window's mode line appears in a |
291d142b | 62 | different color. @xref{Mode Line}, for details. |
6bf7aab6 | 63 | |
6bf7aab6 DL |
64 | @node Split Window |
65 | @section Splitting Windows | |
66 | ||
67 | @table @kbd | |
68 | @item C-x 2 | |
69 | Split the selected window into two windows, one above the other | |
291d142b | 70 | (@code{split-window-below}). |
6bf7aab6 | 71 | @item C-x 3 |
291d142b CY |
72 | Split the selected window into two windows, positioned side by side |
73 | (@code{split-window-right}). | |
6bf7aab6 DL |
74 | @item C-Mouse-2 |
75 | In the mode line or scroll bar of a window, split that window. | |
76 | @end table | |
77 | ||
78 | @kindex C-x 2 | |
291d142b CY |
79 | @findex split-window-below |
80 | @kbd{C-x 2} (@code{split-window-below}) splits the selected window | |
81 | into two windows, one above the other. After splitting, the selected | |
82 | window is the upper one, and the newly split-off window is below. | |
83 | Both windows have the same value of point as before, and display the | |
84 | same portion of the buffer (or as close to it as possible). If | |
85 | necessary, the windows are scrolled to keep point on-screen. By | |
86 | default, the two windows each get half the height of the original | |
87 | window. A positive numeric argument specifies how many lines to give | |
88 | to the top window; a negative numeric argument specifies how many | |
89 | lines to give to the bottom window. | |
6bf7aab6 | 90 | |
291d142b CY |
91 | @vindex split-window-keep-point |
92 | If you change the variable @code{split-window-keep-point} to | |
93 | @code{nil}, @kbd{C-x 2} instead adjusts the portion of the buffer | |
94 | displayed by the two windows, as well as the value of point in each | |
95 | window, in order to keep the text on the screen as close as possible | |
96 | to what it was before; furthermore, if point was in the lower half of | |
97 | the original window, the bottom window is selected instead of the | |
98 | upper one. | |
6bf7aab6 | 99 | |
291d142b CY |
100 | @kindex C-x 3 |
101 | @findex split-window-right | |
102 | @kbd{C-x 3} (@code{split-window-right}) splits the selected window | |
103 | into two side-by-side windows. The left window is the selected one; | |
104 | the right window displays the same portion of the same buffer, and has | |
105 | the same value of point. A positive numeric argument specifies how | |
106 | many columns to give the left window; a negative numeric argument | |
107 | specifies how many columns to give the right window. | |
6bf7aab6 DL |
108 | |
109 | @vindex truncate-partial-width-windows | |
291d142b CY |
110 | When you split a window with @kbd{C-x 3}, each resulting window |
111 | occupies less than the full width of the frame. If it becomes too | |
112 | narrow, the buffer may be difficult to read if continuation lines are | |
113 | in use (@pxref{Continuation Lines}). Therefore, Emacs automatically | |
114 | switches to line truncation if the window width becomes narrower than | |
115 | 50 columns. This truncation occurs regardless of the value of the | |
116 | variable @code{truncate-lines} (@pxref{Line Truncation}); it is | |
117 | instead controlled by the variable | |
118 | @code{truncate-partial-width-windows}. If the value of this variable | |
119 | is a positive integer (the default is 50), that specifies the minimum | |
120 | width for a partial-width window before automatic line truncation | |
121 | occurs; if the value is @code{nil}, automatic line truncation is | |
122 | disabled; and for any other non-@code{nil} value, Emacs truncates | |
123 | lines in every partial-width window regardless of its width. | |
124 | ||
125 | On text terminals, side-by-side windows are separated by a vertical | |
126 | divider which is drawn using the @code{vertical-border} face. | |
6bf7aab6 | 127 | |
291d142b CY |
128 | @kindex C-Mouse-2 @r{(scroll bar)} |
129 | You can also split a window horizontally or vertically by clicking | |
130 | @kbd{C-Mouse-2} in the mode line or the scroll bar. If you click on | |
131 | the mode line, that puts the vertical divider where you click; if you | |
132 | click in the scroll bar, that puts the new mode-line where you click. | |
6bf7aab6 DL |
133 | |
134 | @node Other Window | |
135 | @section Using Other Windows | |
136 | ||
137 | @table @kbd | |
138 | @item C-x o | |
291d142b | 139 | Select another window (@code{other-window}). |
6bf7aab6 DL |
140 | @item C-M-v |
141 | Scroll the next window (@code{scroll-other-window}). | |
6bf7aab6 | 142 | @item Mouse-1 |
291d142b CY |
143 | @kbd{Mouse-1}, in the text area of a window, selects the window and |
144 | moves point to the position clicked. Clicking in the mode line | |
145 | selects the window without moving point in it. | |
6bf7aab6 DL |
146 | @end table |
147 | ||
148 | @kindex C-x o | |
149 | @findex other-window | |
291d142b | 150 | With the keyboard, you can switch windows by typing @kbd{C-x o} |
2684ed46 | 151 | (@code{other-window}). That is an @kbd{o}, for ``other,'' not a zero. |
6bf7aab6 DL |
152 | When there are more than two windows, this command moves through all the |
153 | windows in a cyclic order, generally top to bottom and left to right. | |
154 | After the rightmost and bottommost window, it goes back to the one at | |
155 | the upper left corner. A numeric argument means to move several steps | |
156 | in the cyclic order of windows. A negative argument moves around the | |
157 | cycle in the opposite order. When the minibuffer is active, the | |
158 | minibuffer is the last window in the cycle; you can switch from the | |
159 | minibuffer window to one of the other windows, and later switch back and | |
160 | finish supplying the minibuffer argument that is requested. | |
161 | @xref{Minibuffer Edit}. | |
162 | ||
163 | @kindex C-M-v | |
164 | @findex scroll-other-window | |
165 | The usual scrolling commands (@pxref{Display}) apply to the selected | |
166 | window only, but there is one command to scroll the next window. | |
167 | @kbd{C-M-v} (@code{scroll-other-window}) scrolls the window that | |
168 | @kbd{C-x o} would select. It takes arguments, positive and negative, | |
291d142b CY |
169 | like @kbd{C-v}. (In the minibuffer, @kbd{C-M-v} scrolls the help |
170 | window associated with the minibuffer, if any, rather than the next | |
171 | window in the standard cyclic order; @pxref{Minibuffer Edit}.) | |
6bf7aab6 | 172 | |
fa8b06c2 RS |
173 | @vindex mouse-autoselect-window |
174 | If you set @code{mouse-autoselect-window} to a non-@code{nil} value, | |
291d142b | 175 | moving the mouse over a different window selects that window. This |
fa8b06c2 RS |
176 | feature is off by default. |
177 | ||
6bf7aab6 DL |
178 | @node Pop Up Window |
179 | @section Displaying in Another Window | |
180 | ||
181 | @cindex selecting buffers in other windows | |
182 | @kindex C-x 4 | |
0a2132ba CY |
183 | @kbd{C-x 4} is a prefix key for a variety of commands that switch to |
184 | a buffer in a different window---either another existing window, or a | |
185 | new window created by splitting the selected window. @xref{Window | |
186 | Choice}, for how Emacs picks or creates the window to use. | |
6bf7aab6 DL |
187 | |
188 | @table @kbd | |
0a2132ba | 189 | @findex switch-to-buffer-other-window |
6bf7aab6 | 190 | @item C-x 4 b @var{bufname} @key{RET} |
0a2132ba CY |
191 | Select buffer @var{bufname} in another window |
192 | (@code{switch-to-buffer-other-window}). | |
193 | ||
194 | @findex display-buffer | |
6bf7aab6 | 195 | @item C-x 4 C-o @var{bufname} @key{RET} |
0a2132ba CY |
196 | Display buffer @var{bufname} in some window, without trying to select |
197 | it (@code{display-buffer}). @xref{Displaying Buffers}, for details | |
198 | about how the window is chosen. | |
199 | ||
200 | @findex find-file-other-window | |
6bf7aab6 | 201 | @item C-x 4 f @var{filename} @key{RET} |
0a2132ba CY |
202 | Visit file @var{filename} and select its buffer in another window |
203 | (@code{find-file-other-window}). @xref{Visiting}. | |
204 | ||
205 | @findex dired-other-window | |
6bf7aab6 | 206 | @item C-x 4 d @var{directory} @key{RET} |
0a2132ba CY |
207 | Select a Dired buffer for directory @var{directory} in another window |
208 | (@code{dired-other-window}). @xref{Dired}. | |
209 | ||
210 | @findex mail-other-window | |
6bf7aab6 | 211 | @item C-x 4 m |
0a2132ba CY |
212 | Start composing a mail message, similar to @kbd{C-x m} (@pxref{Sending |
213 | Mail}), but in another window (@code{mail-other-window}). | |
214 | ||
215 | @findex find-tag-other-window | |
6bf7aab6 | 216 | @item C-x 4 . |
0a2132ba CY |
217 | Find a tag in the current tags table, similar to @kbd{M-.} |
218 | (@pxref{Tags}), but in another window (@code{find-tag-other-window}). | |
6bf7aab6 DL |
219 | @item C-x 4 r @var{filename} @key{RET} |
220 | Visit file @var{filename} read-only, and select its buffer in another | |
0a2132ba | 221 | window (@code{find-file-read-only-other-window}). @xref{Visiting}. |
6bf7aab6 DL |
222 | @end table |
223 | ||
6bf7aab6 DL |
224 | @node Change Window |
225 | @section Deleting and Rearranging Windows | |
226 | ||
227 | @table @kbd | |
228 | @item C-x 0 | |
291d142b | 229 | Delete the selected window (@code{delete-window}). |
6bf7aab6 DL |
230 | @item C-x 1 |
231 | Delete all windows in the selected frame except the selected window | |
232 | (@code{delete-other-windows}). | |
233 | @item C-x 4 0 | |
234 | Delete the selected window and kill the buffer that was showing in it | |
235 | (@code{kill-buffer-and-window}). The last character in this key | |
236 | sequence is a zero. | |
237 | @item C-x ^ | |
238 | Make selected window taller (@code{enlarge-window}). | |
239 | @item C-x @} | |
240 | Make selected window wider (@code{enlarge-window-horizontally}). | |
241 | @item C-x @{ | |
242 | Make selected window narrower (@code{shrink-window-horizontally}). | |
243 | @item C-x - | |
244 | Shrink this window if its buffer doesn't need so many lines | |
245 | (@code{shrink-window-if-larger-than-buffer}). | |
246 | @item C-x + | |
247 | Make all windows the same height (@code{balance-windows}). | |
6bf7aab6 DL |
248 | @end table |
249 | ||
250 | @kindex C-x 0 | |
251 | @findex delete-window | |
291d142b CY |
252 | To delete the selected window, type @kbd{C-x 0} |
253 | (@code{delete-window}). (That is a zero.) Once a window is deleted, | |
254 | the space that it occupied is given to an adjacent window (but not the | |
255 | minibuffer window, even if that is active at the time). Deleting the | |
6bf7aab6 | 256 | window has no effect on the buffer it used to display; the buffer |
291d142b | 257 | continues to exist, and you can still switch to with @kbd{C-x b}. |
6bf7aab6 DL |
258 | |
259 | @findex kill-buffer-and-window | |
260 | @kindex C-x 4 0 | |
261 | @kbd{C-x 4 0} (@code{kill-buffer-and-window}) is a stronger command | |
262 | than @kbd{C-x 0}; it kills the current buffer and then deletes the | |
263 | selected window. | |
264 | ||
265 | @kindex C-x 1 | |
266 | @findex delete-other-windows | |
291d142b CY |
267 | @kbd{C-x 1} (@code{delete-other-windows}) deletes all the windows, |
268 | @emph{except} the selected one; the selected window expands to use the | |
269 | whole frame. (This command cannot be used while the minibuffer window | |
270 | is active; attempting to do so signals an error.) | |
6bf7aab6 | 271 | |
6bf7aab6 DL |
272 | @kindex C-x ^ |
273 | @findex enlarge-window | |
274 | @kindex C-x @} | |
6bf7aab6 | 275 | @vindex window-min-height |
291d142b CY |
276 | The command @kbd{C-x ^} (@code{enlarge-window}) makes the selected |
277 | window one line taller, taking space from a vertically adjacent window | |
278 | without changing the height of the frame. With a positive numeric | |
279 | argument, this command increases the window height by that many lines; | |
280 | with a negative argument, it reduces the height by that many lines. | |
281 | If there are no vertically adjacent windows (i.e. the window is at the | |
282 | full frame height), that signals an error. The command also signals | |
283 | an error if you attempt to reduce the height of any window below a | |
284 | certain minimum number of lines, specified by the variable | |
285 | @code{window-min-height} (the default is 4). | |
286 | ||
287 | @findex enlarge-window-horizontally | |
288 | @findex shrink-window-horizontally | |
6bf7aab6 | 289 | @vindex window-min-width |
291d142b CY |
290 | Similarly, @kbd{C-x @}} (@code{enlarge-window-horizontally}) makes |
291 | the selected window wider, and @kbd{C-x @{} | |
292 | (@code{shrink-window-horizontally}) makes it narrower. These commands | |
293 | signal an error if you attempt to reduce the width of any window below | |
294 | a certain minimum number of columns, specified by the variable | |
295 | @code{window-min-width} (the default is 10). | |
6bf7aab6 DL |
296 | |
297 | @kindex C-x - | |
298 | @findex shrink-window-if-larger-than-buffer | |
ae742cb5 CY |
299 | @kbd{C-x -} (@code{shrink-window-if-larger-than-buffer}) reduces the |
300 | height of the selected window, if it is taller than necessary to show | |
301 | the whole text of the buffer it is displaying. It gives the extra | |
302 | lines to other windows in the frame. | |
6bf7aab6 DL |
303 | |
304 | @kindex C-x + | |
305 | @findex balance-windows | |
306 | You can also use @kbd{C-x +} (@code{balance-windows}) to even out the | |
307 | heights of all the windows in the selected frame. | |
308 | ||
3b47541d RS |
309 | Mouse clicks on the mode line provide another way to change window |
310 | heights and to delete windows. @xref{Mode Line Mouse}. | |
311 | ||
0a2132ba CY |
312 | @node Displaying Buffers |
313 | @section Displaying a Buffer in a Window | |
314 | ||
315 | It is a common Emacs operation to display or ``pop up'' some buffer | |
291d142b | 316 | in response to a user command. There are several different ways in |
0a2132ba CY |
317 | which commands do this. |
318 | ||
319 | Many commands, like @kbd{C-x C-f} (@code{find-file}), display the | |
320 | buffer by ``taking over'' the selected window, expecting that the | |
321 | user's attention will be diverted to that buffer. These commands | |
322 | usually work by calling @code{switch-to-buffer} internally | |
323 | (@pxref{Select Buffer}). | |
324 | ||
325 | @findex display-buffer | |
326 | Some commands try to display ``intelligently'', trying not to take | |
291d142b CY |
327 | over the selected window, e.g. by splitting off a new window and |
328 | displaying the desired buffer there. Such commands, which include the | |
329 | various help commands (@pxref{Help}), work by calling | |
330 | @code{display-buffer} internally. @xref{Window Choice}, for details. | |
0a2132ba CY |
331 | |
332 | Other commands do the same as @code{display-buffer}, and | |
333 | additionally select the displaying window so that you can begin | |
334 | editing its buffer. The command @kbd{C-x `} (@code{next-error}) is | |
335 | one example (@pxref{Compilation Mode}). Such commands work by calling | |
291d142b CY |
336 | the function @code{pop-to-buffer} internally. @xref{Switching |
337 | Buffers,,Switching to a Buffer in a Window, elisp, The Emacs Lisp | |
338 | Reference Manual}. | |
0a2132ba CY |
339 | |
340 | Commands with names ending in @code{-other-window} behave like | |
341 | @code{display-buffer}, except that they never display in the selected | |
342 | window. Several of these commands are bound in the @kbd{C-x 4} prefix | |
343 | key (@pxref{Pop Up Window}). | |
344 | ||
345 | Commands with names ending in @code{-other-frame} behave like | |
346 | @code{display-buffer}, except that they (i) never display in the | |
347 | selected window and (ii) prefer to create a new frame to display the | |
348 | desired buffer instead of splitting a window---as though the variable | |
349 | @code{pop-up-frames} is set to @code{t} (@pxref{Window Choice}). | |
350 | Several of these commands are bound in the @kbd{C-x 5} prefix key. | |
351 | ||
352 | @menu | |
353 | * Window Choice:: How @code{display-buffer} works. | |
354 | @end menu | |
355 | ||
356 | @node Window Choice | |
357 | @subsection How @code{display-buffer} works | |
358 | @findex display-buffer | |
359 | ||
360 | The @code{display-buffer} command (as well as commands that call it | |
291d142b CY |
361 | internally) chooses a window to display by following the steps given |
362 | below. @xref{Choosing Window,,Choosing a Window for Display, elisp, | |
363 | The Emacs Lisp Reference Manual}, for details about how to alter this | |
364 | sequence of steps. | |
0a2132ba CY |
365 | |
366 | @itemize | |
367 | @vindex same-window-buffer-names | |
368 | @vindex same-window-regexps | |
369 | @item | |
370 | First, check if the buffer should be displayed in the selected window | |
371 | regardless of other considerations. You can tell Emacs to do this by | |
372 | adding the desired buffer's name to the list | |
373 | @code{same-window-buffer-names}, or adding a matching regular | |
374 | expression to the list @code{same-window-regexps}. By default, these | |
375 | variables are @code{nil}, so this step is skipped. | |
376 | ||
377 | @vindex display-buffer-reuse-frames | |
378 | @item | |
379 | Otherwise, if the buffer is already displayed in an existing window, | |
380 | ``reuse'' that window. Normally, only windows on the selected frame | |
381 | are considered, but windows on other frames are also reusable if you | |
382 | change @code{display-buffer-reuse-frames} to @code{t}, or if you | |
383 | change @code{pop-up-frames} (see below) to @code{t}. | |
384 | ||
385 | @item | |
386 | Otherwise, if you specified that the buffer should be displayed in a | |
387 | special frame by customizing @code{special-display-buffer-names} or | |
b63a8e8e CY |
388 | @code{special-display-regexps}, do so. @xref{Choosing Window |
389 | Options,,, elisp, The Emacs Lisp Reference Manual}. | |
0a2132ba CY |
390 | |
391 | @vindex pop-up-frames | |
392 | @item | |
393 | Otherwise, optionally create a new frame and display the buffer there. | |
394 | By default, this step is skipped. To enable it, change the variable | |
395 | @code{pop-up-frames} to a non-@code{nil} value. The special value | |
396 | @code{graphic-only} means to do this only on graphical displays. | |
397 | ||
398 | @item | |
399 | Otherwise, try to create a new window by splitting the selected | |
400 | window, and display the buffer in that new window. | |
401 | ||
402 | @vindex split-height-threshold | |
403 | @vindex split-width-threshold | |
404 | The split can be either vertical or horizontal, depending on the | |
405 | variables @code{split-height-threshold} and | |
406 | @code{split-width-threshold}. These variables should have integer | |
407 | values. If @code{split-height-threshold} is smaller than the selected | |
408 | window's height, the split puts the new window below. Otherwise, if | |
409 | @code{split-width-threshold} is smaller than the window's width, the | |
410 | split puts the new window on the right. If neither condition holds, | |
411 | Emacs tries to split so that the new window is below---but only if the | |
412 | window was not split before (to avoid excessive splitting). | |
413 | ||
414 | @item | |
415 | Otherwise, display the buffer in an existing window on the selected | |
416 | frame. | |
417 | ||
418 | @item | |
419 | If all the above methods fail for whatever reason, create a new frame | |
420 | and display the buffer there. | |
421 | @end itemize | |
422 | ||
88968b11 DL |
423 | @node Window Convenience |
424 | @section Window Handling Convenience Features and Customization | |
425 | ||
426 | @findex winner-mode | |
d683704c DL |
427 | @cindex Winner mode |
428 | @cindex mode, Winner | |
88968b11 DL |
429 | @cindex undoing window configuration changes |
430 | @cindex window configuration changes, undoing | |
291d142b CY |
431 | Winner mode is a global minor mode that records the changes in the |
432 | window configuration (i.e. how the frames are partitioned into | |
433 | windows), so that you can ``undo'' them. You can toggle Winner mode | |
434 | with @kbd{M-x winner-mode}, or by customizing the variable | |
435 | @code{winner-mode}. When the mode is enabled, @kbd{C-c left} | |
436 | (@code{winner-undo}) undoes the last window configuration change. If | |
437 | you change your mind while undoing, you can redo the changes you had | |
438 | undone using @kbd{C-c right} (@code{M-x winner-redo}). | |
439 | ||
440 | Follow mode (@kbd{M-x follow-mode}) synchronizes several windows on | |
441 | the same buffer so that they always display adjacent sections of that | |
442 | buffer. @xref{Follow Mode}. | |
88968b11 DL |
443 | |
444 | @cindex Windmove package | |
445 | @cindex directional window selection | |
d683704c DL |
446 | @findex windmove-right |
447 | @findex windmove-default-keybindings | |
291d142b CY |
448 | The Windmove package defines commands for moving directionally |
449 | between neighboring windows in a frame. @kbd{M-x windmove-right} | |
450 | selects the window immediately to the right of the currently selected | |
451 | one, and similarly for the ``left,'' ``up,'' and ``down'' | |
452 | counterparts. @kbd{M-x windmove-default-keybindings} binds these | |
453 | commands to @kbd{S-right} etc.; doing so disables shift selection for | |
454 | those keys (@pxref{Shift Selection}). | |
88968b11 | 455 | |
291d142b CY |
456 | The command @kbd{M-x compare-windows} lets you compare the text |
457 | shown in different windows. @xref{Comparing Files}. | |
74f60775 RS |
458 | |
459 | @vindex scroll-all-mode | |
460 | @cindex scrolling windows together | |
461 | @cindex Scroll-all mode | |
462 | @cindex mode, Scroll-all | |
291d142b CY |
463 | Scroll All mode (@kbd{M-x scroll-all-mode}) is a global minor mode |
464 | that causes scrolling commands and point motion commands to apply to | |
465 | every single window. |