diff man/xemacs/windows.texi @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children e45d5e7c476e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/xemacs/windows.texi	Mon Aug 13 08:45:50 2007 +0200
@@ -0,0 +1,287 @@
+
+@node Windows, Major Modes, Buffers, Top
+@chapter Multiple Windows
+@cindex windows
+
+  Emacs can split the frame into two or many windows, which can display
+parts of different buffers or different parts of one buffer.  If you are
+running XEmacs under X, that means you can have the X window that contains
+the Emacs frame have multiple subwindows. 
+
+@menu
+* Basic Window::     Introduction to Emacs windows.
+* Split Window::     New windows are made by splitting existing windows.
+* Other Window::     Moving to another window or doing something to it.
+* Pop Up Window::    Finding a file or buffer in another window.
+* Change Window::    Deleting windows and changing their sizes.
+@end menu
+
+@node Basic Window, Split Window, Windows, Windows
+@section Concepts of Emacs Windows
+
+  When Emacs displays multiple windows, each window has one Emacs
+buffer designated for display.  The same buffer may appear in more
+than one window; if it does, any changes in its text are displayed in all
+the windows that display it.  Windows showing the same buffer can
+show different parts of it, because each window has its own value of point.
+
+@cindex selected window
+  At any time, one  window is the @dfn{selected window}; the buffer
+ displayed by that window is the current buffer.  The cursor
+shows the location of point in that window.  Each other window has a
+location of point as well, but since the terminal has only one cursor, it
+cannot show the location of point in the other windows. 
+
+  Commands to move point affect the value of point for the selected Emacs
+window only.  They do not change the value of point in any other Emacs
+window, including those showing the same buffer.  The same is true for commands
+such as @kbd{C-x b} to change the selected buffer in the selected window;
+they do not affect other windows at all.  However, there are other commands
+such as @kbd{C-x 4 b} that select a different window and switch buffers in
+it.  Also, all commands that display information in a window, including
+(for example) @kbd{C-h f} (@code{describe-function}) and @kbd{C-x C-b}
+(@code{list-buffers}), work by switching buffers in a non-selected window
+without affecting the selected window.
+
+  Each window has its own mode line, which displays the buffer name,
+modification status, and major and minor modes of the buffer that is
+displayed in the window.  @xref{Mode Line}, for details on the mode
+line.
+
+@node Split Window, Other Window, Basic Window, Windows
+@section Splitting Windows
+
+@table @kbd
+@item C-x 2
+Split the selected window into two windows, one above the other
+(@code{split-window-vertically}).
+@item C-x 3
+Split the selected window into two windows positioned side by side
+(@code{split-window-horizontally}).
+@item C-x 6
+Save the current window configuration in register @var{reg} (a letter).
+@item C-x 7
+Restore (make current) the window configuration in register
+@var{reg} (a letter).  Use with a register previously set with @kbd{C-x 6}.
+@end table
+
+@kindex C-x 2
+@findex split-window-vertically
+  The command @kbd{C-x 2} (@code{split-window-vertically}) breaks the
+selected window into two windows, one above the other.  Both windows
+start out displaying the same buffer, with the same value of point.  By
+default each of the two windows gets half the height of the window that
+was split.  A numeric argument specifies how many lines to give to the
+top window.
+
+@kindex C-x 3
+@findex split-window-horizontally
+  @kbd{C-x 3} (@code{split-window-horizontally}) breaks the selected
+window into two side-by-side windows.  A numeric argument specifies how
+many columns to give the one on the left.  A line of vertical bars
+separates the two windows.  Windows that are not the full width of the
+frame have truncated mode lines which do not always appear in inverse
+video, because Emacs display routines cannot display a region of inverse
+video that is only part of a line on the screen.
+
+@vindex truncate-partial-width-windows
+  When a window is less than the full width, many text lines are too
+long to fit.  Continuing all those lines might be confusing.  Set the
+variable @code{truncate-partial-width-windows} to non-@code{nil} to
+force truncation in all windows less than the full width of the frame,
+independent of the buffer and its value for @code{truncate-lines}.
+@xref{Continuation Lines}.@refill
+
+  Horizontal scrolling is often used in side-by-side windows.
+@xref{Display}.
+
+@findex jump-to-register
+@findex window-configuration-to-register
+You can resize a window and store that configuration in a register by
+supplying a @var{register} argument to @code{window-configuration-to-register}
+(@kbd{C-x 6}). To return to the window configuration established with
+@code{window-configuration-to-register}, use @code{jump-to-register}
+(@kbd{C-x j}).
+
+@node Other Window, Pop Up Window, Split Window, Windows
+@section Using Other Windows
+
+@table @kbd
+@item C-x o
+Select another window (@code{other-window}).  That is the letter `o', not zero.
+@item M-C-v
+Scroll the next window (@code{scroll-other-window}).
+@item M-x compare-windows
+Find the next place where the text in the selected window does not match
+the text in the next window.
+@item M-x other-window-any-frame @var{n}
+Select the @var{n}th different window on any frame.
+@end table
+
+@kindex C-x o
+@findex other-window
+  To select a different window, use @kbd{C-x o} (@code{other-window}).
+That is an `o', for `other', not a zero.  When there are more than
+two windows, the command moves through all the windows in a cyclic
+order, generally top to bottom and left to right.  From the rightmost
+and bottommost window, it goes back to the one at the upper left corner.
+A numeric argument, @var{n}, moves several steps in the cyclic order of
+windows. A negative numeric argument moves around the cycle in the
+opposite order.  If the optional second argument @var{all-frames} is
+non-@code{nil}, the function cycles through all frames.  When the
+minibuffer is active, the minibuffer is the last window in the cycle;
+you can switch from the minibuffer window to one of the other windows,
+and later switch back and finish supplying the minibuffer argument that
+is requested.  @xref{Minibuffer Edit}.
+
+@findex other-window-any-frame
+ The command @kbd{M-x other-window-any-frame} also selects the window
+@var{n} steps away in the cyclic order.  However, unlike @code{other-window},
+this command selects a window on the next or previous frame instead of
+wrapping around to the top or bottom of the current frame, when there
+are no more windows.
+
+@kindex C-M-v
+@findex scroll-other-window
+  The usual scrolling commands (@pxref{Display}) apply to the selected
+window only.  @kbd{M-C-v} (@code{scroll-other-window}) scrolls the
+window that @kbd{C-x o} would select.  Like @kbd{C-v}, it takes positive
+and negative arguments. 
+
+@findex compare-windows
+  The command @kbd{M-x compare-windows} compares the text in the current
+window with the text in the next window.  Comparison starts at point in each
+window.  Point moves forward in each window, a character at a time,
+until the next set of characters in the two windows are different.  Then the
+command is finished.
+
+A prefix argument @var{ignore-whitespace} means ignore changes in
+whitespace.  The variable @code{compare-windows-whitespace} controls how
+whitespace is skipped.
+
+If @code{compare-ignore-case} is non-@code{nil}, changes in case are
+also ignored.
+
+@node Pop Up Window, Change Window, Other Window, Windows
+@section Displaying in Another Window
+
+@kindex C-x 4
+  @kbd{C-x 4} is a prefix key for commands that select another window
+(splitting the window if there is only one) and select a buffer in that
+window.  Different @kbd{C-x 4} commands have different ways of finding the
+buffer to select.
+
+@findex switch-to-buffer-other-window
+@findex find-file-other-window
+@findex find-tag-other-window
+@findex dired-other-window
+@findex mail-other-window
+@table @kbd
+@item C-x 4 b @var{bufname} @key{RET}
+Select buffer @var{bufname} in another window.  This runs 
+@code{switch-to-buffer-other-window}.
+@item C-x 4 f @var{filename} @key{RET}
+Visit file @var{filename} and select its buffer in another window.  This
+runs @code{find-file-other-window}.  @xref{Visiting}.
+@item C-x 4 d @var{directory} @key{RET}
+Select a Dired buffer for directory @var{directory} in another window.
+This runs @code{dired-other-window}.  @xref{Dired}.
+@item C-x 4 m
+Start composing a mail message in another window.  This runs
+@code{mail-other-window}, and its same-window version is @kbd{C-x m}
+(@pxref{Sending Mail}).
+@item C-x 4 .
+Find a tag in the current tag table in another window.  This runs
+@code{find-tag-other-window}, the multiple-window variant of @kbd{M-.}
+(@pxref{Tags}).
+@end table
+
+@vindex display-buffer-function
+If the variable @code{display-buffer-function} is non-@code{nil}, its value is
+the function to call to handle @code{display-buffer}. It receives two
+arguments, the buffer and a flag that if non-@code{nil} means that the
+currently selected window is not acceptable. Commands such as
+@code{switch-to-buffer-other-window} and @code{find-file-other-window}
+work using this function.
+
+@node Change Window,, Pop Up Window, Windows
+@section Deleting and Rearranging Windows
+
+@table @kbd
+@item C-x 0
+Get rid of the selected window (@code{delete-window}).  That is a zero. 
+If there is more than one Emacs frame, deleting the sole remaining
+window on that frame deletes the frame as well. If the current frame
+is the only frame, it is not deleted. 
+@item C-x 1
+Get rid of all windows except the selected one
+(@code{delete-other-windows}).
+@item C-x ^
+Make the selected window taller, at the expense of the other(s)
+@*(@code{enlarge-window}).
+@item C-x @}
+Make the selected window wider (@code{enlarge-window-horizontally}).
+@end table
+
+@kindex C-x 0
+@findex delete-window
+  To delete a window, type @kbd{C-x 0} (@code{delete-window}).  (That is a
+zero.)  The space occupied by the deleted window is distributed among the
+other active windows (but not the minibuffer window, even if that is active
+at the time).  Once a window is deleted, its attributes are forgotten;
+there is no automatic way to make another window of the same shape or
+showing the same buffer.  The buffer continues to exist, and you can
+select it in any window with @kbd{C-x b}.
+
+@kindex C-x 1
+@findex delete-other-windows
+  @kbd{C-x 1} (@code{delete-other-windows}) is more powerful than @kbd{C-x 0};
+it deletes all the windows except the selected one (and the minibuffer).
+The selected window expands to use the whole frame except for the echo
+area.
+
+@kindex C-x ^
+@findex enlarge-window
+@kindex C-x @}
+@findex enlarge-window-horizontally
+@vindex window-min-height
+@vindex window-min-width
+  To readjust the division of space among existing windows, use @kbd{C-x
+^} (@code{enlarge-window}).  It makes the currently selected window
+longer by one line or as many lines as a numeric argument specifies.
+With a negative argument, it makes the selected window smaller.
+@kbd{C-x @}} (@code{enlarge-window-horizontally}) makes the selected
+window wider by the specified number of columns.  The extra screen space
+given to a window comes from one of its neighbors, if that is possible;
+otherwise, all the competing windows are shrunk in the same proportion.
+If this makes some windows too small, those windows are deleted and their
+space is divided up.   Minimum window size is specified by the variables
+@code{window-min-height} and @code{window-min-width}.
+
+You can also resize windows within a frame by clicking the left mouse
+button on a modeline, and dragging.
+
+Clicking the right button on a mode line pops up a menu of common window
+manager operations.  This menu contains the following options:
+
+@cindex Windows menu
+@cindex Pull-down Menus
+@cindex menus
+@table @b
+@item Delete Window
+Remove the window above this modeline from the frame.
+
+@item Delete Other Windows
+Delete all windows on the frame except for the one above this modeline.
+
+@item Split Window
+Split the window above the mode line in half, creating another window.
+
+@item Split Window Horizontally
+Split the window above the mode line in half horizontally, so that there
+will be two windows side-by-side.
+
+@item Balance Windows
+Readjust the sizes of all windows on the frame until all windows have
+roughly the same number of lines.
+@end table