]> code.delx.au - gnu-emacs/blobdiff - doc/emacs/windows.texi
Update copyright year to 2016
[gnu-emacs] / doc / emacs / windows.texi
index 76ab79361e44d49aa3af90091d2d86a862d8fc84..cd7d08dede6b9b7098711da446e3935e952ccd55 100644 (file)
@@ -1,8 +1,8 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2012
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
+@c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
-@node Windows, Frames, Buffers, Top
+@node Windows
 @chapter Multiple Windows
 @cindex windows in Emacs
 @cindex multiple windows in Emacs
@@ -36,8 +36,8 @@ has its own value of point.
   At any time, one Emacs window is the @dfn{selected window}; the
 buffer this window is displaying is the current buffer.  On graphical
 displays, the point is indicated by a solid blinking cursor in the
-selected window, and by a hollow box in non-selected windows.  On
-text-only terminals, the cursor is drawn only in the selected window.
+selected window, and by a hollow box in non-selected windows.  On text
+terminals, the cursor is drawn only in the selected window.
 @xref{Cursor Display}.
 
   Commands to move point affect the value of point for the selected
@@ -72,7 +72,7 @@ Split the selected window into two windows, one above the other
 Split the selected window into two windows, positioned side by side
 (@code{split-window-right}).
 @item C-Mouse-2
-In the mode line or scroll bar of a window, split that window.
+In the mode line of a window, split that window.
 @end table
 
 @kindex C-x 2
@@ -125,11 +125,26 @@ lines in every partial-width window regardless of its width.
   On text terminals, side-by-side windows are separated by a vertical
 divider which is drawn using the @code{vertical-border} face.
 
+@kindex C-Mouse-2 @r{(mode line)}
 @kindex C-Mouse-2 @r{(scroll bar)}
-  You can also split a window horizontally or vertically by clicking
-@kbd{C-Mouse-2} in the mode line or the scroll bar.  If you click on
-the mode line, that puts the vertical divider where you click; if you
-click in the scroll bar, that puts the new mode-line where you click.
+  If you click @kbd{C-Mouse-2} in the mode line of a window, that
+splits the window, putting a vertical divider where you click.
+Depending on how Emacs is compiled, you can also split a window by
+clicking @kbd{C-Mouse-2} in the scroll bar, which puts a horizontal
+divider where you click (this feature does not work when Emacs uses
+GTK+ scroll bars).
+
+@vindex window-resize-pixelwise
+  By default, when you split a window, Emacs gives each of the
+resulting windows dimensions that are an integral multiple of the
+default font size of the frame.  That might subdivide the screen
+estate unevenly between the resulting windows.  If you set the
+variable @code{window-resize-pixelwise} to a non-@code{nil} value,
+Emacs will give each window the same number of pixels (give or take
+one pixel if the initial dimension was an odd number of pixels).  Note
+that when a frame's pixel size is not a multiple of the frame's
+character size, at least one window may get resized pixelwise even if
+this option is @code{nil}.
 
 @node Other Window
 @section Using Other Windows
@@ -148,7 +163,7 @@ selects the window without moving point in it.
 @kindex C-x o
 @findex other-window
 With the keyboard, you can switch windows by typing @kbd{C-x o}
-(@code{other-window}).  That is an @kbd{o}, for ``other,'' not a zero.
+(@code{other-window}).  That is an @kbd{o}, for ``other'', not a zero.
 When there are more than two windows, this command moves through all the
 windows in a cyclic order, generally top to bottom and left to right.
 After the rightmost and bottommost window, it goes back to the one at
@@ -208,10 +223,11 @@ Visit file @var{filename} and select its buffer in another window
 Select a Dired buffer for directory @var{directory} in another window
 (@code{dired-other-window}).  @xref{Dired}.
 
-@findex mail-other-window
+@c Don't index @kbd{C-x 4 m} and @code{compose-mail-other-window}
+@c here, they are indexed in sending.texi, in the "Sending Mail" node.
 @item C-x 4 m
 Start composing a mail message, similar to @kbd{C-x m} (@pxref{Sending
-Mail}), but in another window (@code{mail-other-window}).
+Mail}), but in another window (@code{compose-mail-other-window}).
 
 @findex find-tag-other-window
 @item C-x 4 .
@@ -223,8 +239,10 @@ window (@code{find-file-read-only-other-window}).  @xref{Visiting}.
 @end table
 
 @node Change Window
-@section Deleting and Rearranging Windows
+@section Deleting and Resizing Windows
 
+@cindex delete window
+@cindex deleting windows
 @table @kbd
 @item C-x 0
 Delete the selected window (@code{delete-window}).
@@ -255,7 +273,7 @@ Make all windows the same height (@code{balance-windows}).
 the space that it occupied is given to an adjacent window (but not the
 minibuffer window, even if that is active at the time).  Deleting the
 window has no effect on the buffer it used to display; the buffer
-continues to exist, and you can still switch to with @kbd{C-x b}.
+continues to exist, and you can still switch to it with @kbd{C-x b}.
 
 @findex kill-buffer-and-window
 @kindex C-x 4 0
@@ -270,6 +288,8 @@ selected window.
 whole frame.  (This command cannot be used while the minibuffer window
 is active; attempting to do so signals an error.)
 
+@cindex resize window
+@cindex resizing windows
 @kindex C-x ^
 @findex enlarge-window
 @kindex C-x @}
@@ -279,7 +299,7 @@ window one line taller, taking space from a vertically adjacent window
 without changing the height of the frame.  With a positive numeric
 argument, this command increases the window height by that many lines;
 with a negative argument, it reduces the height by that many lines.
-If there are no vertically adjacent windows (i.e. the window is at the
+If there are no vertically adjacent windows (i.e., the window is at the
 full frame height), that signals an error.  The command also signals
 an error if you attempt to reduce the height of any window below a
 certain minimum number of lines, specified by the variable
@@ -295,6 +315,10 @@ signal an error if you attempt to reduce the width of any window below
 a certain minimum number of columns, specified by the variable
 @code{window-min-width} (the default is 10).
 
+  Mouse clicks on the mode line (@pxref{Mode Line Mouse}) or on window
+dividers (@pxref{Window Dividers}) provide another way to change window
+heights and to split or delete windows.
+
 @kindex C-x -
 @findex shrink-window-if-larger-than-buffer
   @kbd{C-x -} (@code{shrink-window-if-larger-than-buffer}) reduces the
@@ -307,13 +331,10 @@ lines to other windows in the frame.
   You can also use @kbd{C-x +} (@code{balance-windows}) to even out the
 heights of all the windows in the selected frame.
 
-  Mouse clicks on the mode line provide another way to change window
-heights and to delete windows.  @xref{Mode Line Mouse}.
-
 @node Displaying Buffers
 @section Displaying a Buffer in a Window
 
-  It is a common Emacs operation to display or ``pop up'' some buffer
+  It is a common Emacs operation to display or pop up some buffer
 in response to a user command.  There are several different ways in
 which commands do this.
 
@@ -324,8 +345,8 @@ usually work by calling @code{switch-to-buffer} internally
 (@pxref{Select Buffer}).
 
 @findex display-buffer
-  Some commands try to display ``intelligently'', trying not to take
-over the selected window, e.g. by splitting off a new window and
+  Some commands try to display intelligently, trying not to take
+over the selected window, e.g., by splitting off a new window and
 displaying the desired buffer there.  Such commands, which include the
 various help commands (@pxref{Help}), work by calling
 @code{display-buffer} internally.  @xref{Window Choice}, for details.
@@ -375,20 +396,12 @@ adding the desired buffer's name to the list
 expression to the list @code{same-window-regexps}.  By default, these
 variables are @code{nil}, so this step is skipped.
 
-@vindex display-buffer-reuse-frames
 @item
 Otherwise, if the buffer is already displayed in an existing window,
-``reuse'' that window.  Normally, only windows on the selected frame
+reuse that window.  Normally, only windows on the selected frame
 are considered, but windows on other frames are also reusable if you
-change @code{display-buffer-reuse-frames} to @code{t}, or if you
 change @code{pop-up-frames} (see below) to @code{t}.
 
-@item
-Otherwise, if you specified that the buffer should be displayed in a
-special frame by customizing @code{special-display-buffer-names} or
-@code{special-display-regexps}, do so.  @xref{Choosing Window
-Options,,, elisp, The Emacs Lisp Reference Manual}.
-
 @vindex pop-up-frames
 @item
 Otherwise, optionally create a new frame and display the buffer there.
@@ -430,8 +443,8 @@ and display the buffer there.
 @cindex undoing window configuration changes
 @cindex window configuration changes, undoing
   Winner mode is a global minor mode that records the changes in the
-window configuration (i.e. how the frames are partitioned into
-windows), so that you can ``undo'' them.  You can toggle Winner mode
+window configuration (i.e., how the frames are partitioned into
+windows), so that you can undo them.  You can toggle Winner mode
 with @kbd{M-x winner-mode}, or by customizing the variable
 @code{winner-mode}.  When the mode is enabled, @kbd{C-c left}
 (@code{winner-undo}) undoes the last window configuration change.  If
@@ -449,7 +462,7 @@ buffer.  @xref{Follow Mode}.
   The Windmove package defines commands for moving directionally
 between neighboring windows in a frame.  @kbd{M-x windmove-right}
 selects the window immediately to the right of the currently selected
-one, and similarly for the ``left,'' ``up,'' and ``down''
+one, and similarly for the left, up, and down
 counterparts.  @kbd{M-x windmove-default-keybindings} binds these
 commands to @kbd{S-right} etc.; doing so disables shift selection for
 those keys (@pxref{Shift Selection}).