changeset 36143:44a6f7ea121f

Major rewrite of Uniquify node and Iswitchb node. Reorder info about indirect buffers, and clarify. Put BS and MSB together in one node, Buffer Menus. Don't mention kill-read-only-ok here. Misc. clarifications.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Feb 2001 13:51:18 +0000
parents f613630c384e
children 22f75550e788
files man/buffers.texi
diffstat 1 files changed, 90 insertions(+), 81 deletions(-) [+]
line wrap: on
line diff
--- a/man/buffers.texi	Sat Feb 17 13:33:11 2001 +0000
+++ b/man/buffers.texi	Sat Feb 17 13:51:18 2001 +0000
@@ -134,10 +134,11 @@
 @end smallexample
 
 @noindent
-Note that the buffer @samp{*Help*} was made by a help request; it is not
-visiting any file.  The buffer @code{man} was made by Dired on the
-directory @file{/u2/emacs/man/}.  You can list buffers visiting files
-only by giving the command a prefix, i.e. type @kbd{C-u C-x C-b}.
+Note that the buffer @samp{*Help*} was made by a help request; it is
+not visiting any file.  The buffer @code{man} was made by Dired on the
+directory @file{/u2/emacs/man/}.  You can list only buffers that are
+visiting files by giving the command a prefix; for instance, by typing
+@kbd{C-u C-x C-b}.
 
 @need 2000
 @node Misc Buffer
@@ -159,13 +160,11 @@
 @vindex buffer-read-only
 @cindex read-only buffer
   A buffer can be @dfn{read-only}, which means that commands to change
-its contents are not allowed.  The mode line indicates read-only buffers
-with @samp{%%} or @samp{%*} near the left margin.  Read-only buffers are
-usually made by subsystems such as Dired and Rmail that have special
-commands to operate on the text; also by visiting a file whose access
-control says you cannot write it.  However, if the variable
-@code{kill-read-only-ok} is set to a non-@code{nil} value, you can kill
-(a.k.a.@: cut) read-only text, see @ref{Killing}.
+its contents are not allowed.  The mode line indicates read-only
+buffers with @samp{%%} or @samp{%*} near the left margin.  Read-only
+buffers are usually made by subsystems such as Dired and Rmail that
+have special commands to operate on the text; also by visiting a file
+whose access control says you cannot write it.
 
   If you wish to make changes in a read-only buffer, use the command
 @kbd{C-x C-q} (@code{vc-toggle-read-only}).  It makes a read-only buffer
@@ -425,21 +424,22 @@
   One way to use indirect buffers is to display multiple views of an
 outline.  @xref{Outline Views}.
 
-  The command @kbd{M-x make-indirect-buffer} creates an indirect buffer
-whose name is @var{indirect-name} and whose text is identical to that of
-the buffer @var{base-buffer}.  It prompts for both @var{base-buffer} and
-@var{indirect-name}.
+@cindex multiple @samp{*info*} and @samp{*Help*} buffers
+  A quick and handy way to make an indirect buffer is with the command
+@kbd{M-x clone-indirect-buffer}.  It creates and selects an indirect
+buffer whose base buffer is the current buffer.  With a numeric
+argument, it prompts for the name of the indirect buffer; otherwise it
+defaults to the name of the current buffer, modifying it by adding a
+@samp{<@var{n}>} prefix if required.  @kbd{C-x 4 c}
+(@code{clone-indirect-buffer-other-window}) works like @kbd{M-x
+clone-indirect-buffer}, but it selects the cloned buffer in another
+window.  These commands come in handy if you want to create new
+@samp{*info*} or @samp{*Help*} buffers, for example.
 
-@cindex multiple @samp{*info*} and @samp{*Help*} buffers
-  The command @kbd{M-x clone-indirect-buffer} creates an indirect buffer
-whose base buffer is the current buffer, and also selects the
-newly-created indirect buffer.  With a numeric argument, it prompts for
-the name of the indirect buffer; otherwise it defaults to the name of
-the current buffer, modifying it by adding a @samp{<@var{n}>} prefix if
-required.  @kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window})
-works like @kbd{M-x clone-indirect-buffer}, but it selects the cloned
-buffer in another window.  These commands come in handy if you want to
-create new @samp{*info*} or @samp{*Help*} buffers, for example.
+  The more general way is with the command @kbd{M-x
+make-indirect-buffer}.  It creates an indirect buffer from buffer
+@var{base-buffer}, under the name @var{indirect-name}.  It prompts for
+both @var{base-buffer} and @var{indirect-name} using the minibuffer.
 
 @node Buffer Convenience
 @section Convenience Features and Customization of Buffer Handling
@@ -447,29 +447,46 @@
 @menu
 * Uniquify::               Buffer names can contain directory parts.
 * Iswitchb::               Switching between buffers with substrings.
-* BS::                     Configurable buffer menu.     
-* MSB::                    Customizing the Mouse Buffer Selection Menus.
+* Buffer Menus::           Configurable buffer menu.     
 @end menu
 
 @node Uniquify
-@subsection Directory Names in Buffer Names
+@subsection Making Buffer Names Unique
 
-@findex toggle-uniquify-buffer-names
-@vindex uniquify-buffer-name-style
 @cindex unique buffer names
 @cindex directories in buffer names
-Emacs's standard method for making buffer names unique adds @samp{<2>},
-@samp{<3>}, etc. to the end of (all but one of) the buffers.  The
-Uniquify package replaces that behavior, for buffers visiting files and
-dired buffers.  It implements a uniquification that adds parts of the
-file name until the buffer names are unique.  For instance, buffers
-visiting @file{/u/mernst/tmp/Makefile} and
-@file{/usr/projects/zaphod/Makefile} would be named @samp{tmp/Makefile}
-and @samp{zaphod/Makefile}, respectively (instead of @samp{Makefile}
-and @samp{Makefile<2>}).  You can turn on this mode and select other
-buffer name styles by customizing the user option
-@code{uniquify-buffer-name-style}.  The command @kbd{M-x
-toggle-uniquify-buffer-names} can also be used to toggle the mode.  
+  When several buffers visit identically-named files, Emacs must give
+the buffers distinct names.  The usual method for making buffer names
+unique adds @samp{<2>}, @samp{<3>}, etc. to the end of the buffer
+names (all but one of them).
+
+@vindex uniquify-buffer-name-style
+  Other methods work by adding parts of each file's directory to the
+buffer name.  To select one, customize the variable
+@code{uniquify-buffer-name-style} (@pxref{Easy Customization}).
+
+  For instance, the @code{forward} naming method puts part of the
+directory name at the beginning of the buffer name; using this method,
+buffers visiting @file{/u/mernst/tmp/Makefile} and
+@file{/usr/projects/zaphod/Makefile} would be named
+@samp{tmp/Makefile} and @samp{zaphod/Makefile}, respectively (instead
+of @samp{Makefile} and @samp{Makefile<2>}).
+
+  By contrast, the @code{post-forward} naming method would call the
+buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}, and the
+@code{reverse} naming method would call them @samp{Makefile\tmp} and
+@samp{Makefile\zaphod}.  The nontrivial difference between
+@code{post-forward} and @code{reverse} occurs when just one directory
+name is not enough to distinguish two files; then @code{reverse} puts
+the directory names in reverse order, so that @file{/top/middle/file}
+becomes @samp{file\middle\top}, while @code{post-forward} puts them in
+forward order after the file name, as in @samp{file|top/middle}.
+
+  Which rule to follow for putting the directory names in the buffer
+name is not very important if you are going to @emph{look} at the
+buffer names before you type one.  But as an experienced user, if you
+know the rule, you won't have to look.  And then you may find that one
+rule or another is easier for you to remember and utilize fast.
 
 @node Iswitchb
 @subsection Switching Between Buffers using Substrings
@@ -482,59 +499,51 @@
 @kindex C-x 5 b @r{(Iswitchb mode)}
 @kindex C-x 4 C-o @r{(Iswitchb mode)}
 
-Iswitchb global minor mode provides convenient switching between buffers
-using substrings of their names by replacing the normal keybindings
-@kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b} and @kbd{C-x 4 C-o}.
+  Iswitchb global minor mode provides convenient switching between
+buffers using substrings of their names.  It replaces the normal
+definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x
+4 C-o} with alternative commands that are somewhat ``smarter.''
+
+  When one of these commands prompts you for a buffer name, you can
+type in just a substring of the name you want to choose.  As you enter
+the substring, Iswitchb mode continuously displays a list of buffers
+that match the substring you have typed.
 
-When you are prompted for a buffer name, as you type in a substring the
-list of buffers currently matching it is displayed as you type, with the
-most recent buffers visited towards the start of the list.  The buffer
-at the start will be the one visited when you press @key{RET}.  By
-typing more of the substring, the list is narrowed down so that
-gradually the buffer you want will be at the top of the list.
-Alternatively, you can use @kbd{C-s} and @kbd{C-r} to rotate buffer
-names in the list until the one you want is at the top of the list.
-Completion is available so that you can see what is common to all of the
-matching buffers as you type.
+  At any time, you can type @key{RET} to select the first buffer in
+the list.  So the way to select a particular buffer is to make it the
+first in the list.  There are two ways to do this.  You can type more
+of the buffer name and thus narrow down the list, excluding unwanted
+buffers above the desired one.  Alternatively, you can use @kbd{C-s}
+and @kbd{C-r} to rotate the list until the desired buffer is first.
 
-@node BS
-@subsection Configurable Buffer Menus
+  @key{TAB} while entering the buffer name performs completion on the
+string you have entered, based on the displayed list of buffers.
+
+@node Buffer Menus
+@subsection Customizing Buffer Menus
 
 @findex bs-show
-@findex bs-cycle-next
-@findex bs-cycle-previous
 @cindex buffer list, customizable
 @table @kbd
 @item M-x bs-show
 Make a list of buffers similarly to @kbd{M-x list-buffers} but
 customizable.
-@item M-x bs-cycle-next
-Cycle to the next buffer in the configuration.
-@item M-x bs-cycle-previous
-Cycle to the previous buffer in the configuration.
 @end table
 
-@kbd{M-x bs-show} pops up a buffer list similar to the one normally
-displayed by @kbd{C-x C-b} but which can be customized.  You might like
-to bind it to @kbd{C-x C-b}.  You can customize the display, for
-instance to display a subset of buffers, in the @code{bs} Custom group.
-A special subset of all buffers is available---for instance avoiding
-ones like @samp{*Messages*}---through which you can cycle with @kbd{M-x
-bs-cycle-next} and @kbd{M-x bs-cycle-previous}.  Those commands could be
-bound to convenient keys.
-
-@node MSB
-@subsection Customizing the Mouse Buffer Selection Menus
+  @kbd{M-x bs-show} pops up a buffer list similar to the one normally
+displayed by @kbd{C-x C-b} but which you can customize.  If you prefer
+this to the usual buffer list, you can bind this command to @kbd{C-x
+C-b}.  To customize this buffer list, use the @code{bs} Custom group
+(@pxref{Easy Customization}).
 
 @findex msb-mode
 @cindex mode, MSB
 @cindex MSB mode
 @cindex buffer menu
 @findex mouse-buffer-menu
-@kindex C-down-mouse-1
-
-MSB global minor mode provides a different and customizable mouse buffer
-menu which you may prefer.  It replaces the bindings of
-@code{mouse-buffer-menu}, normally on @kbd{C-down-mouse-1}, and the menu
-bar buffer menu.  You can customize the menu in the @code{msb} Custom
-group.
+@kindex C-Down-Mouse-1
+  MSB global minor mode (``MSB'' stands for ``mouse select buffer'')
+provides a different and customizable mouse buffer menu which you may
+prefer.  It replaces the bindings of @code{mouse-buffer-menu},
+normally on @kbd{C-Down-Mouse-1}, and the menu bar buffer menu.  You
+can customize the menu in the @code{msb} Custom group.