+
+ 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
+uses the name of the current buffer, with a @samp{<@var{n}>} suffix
+added. @kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window})
+works like @kbd{M-x clone-indirect-buffer}, but it selects the new
+buffer in another window.
+
+ The more general way to make an indirect buffer 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
+
+ This section describes several modes and features that make it more
+convenient to switch between buffers.
+
+@menu
+* Uniquify:: Making buffer names unique with directory parts.
+* Iswitchb:: Switching between buffers with substrings.
+* Buffer Menus:: Configurable buffer menu.
+@end menu
+
+@node Uniquify
+@subsection Making Buffer Names Unique
+
+@cindex unique buffer names
+@cindex directories in buffer names
+ 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/rms/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 apply quickly.
+
+@node Iswitchb
+@subsection Switching Between Buffers using Substrings
+
+@findex iswitchb-mode
+@cindex Iswitchb mode
+@cindex mode, Iswitchb
+@kindex C-x b @r{(Iswitchb mode)}
+@kindex C-x 4 b @r{(Iswitchb mode)}
+@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. 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.
+
+ 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.
+
+ @key{TAB} while entering the buffer name performs completion on the
+string you have entered, based on the displayed list of buffers.
+
+ To enable Iswitchb mode, type @kbd{M-x iswitchb-mode}, or customize
+the variable @code{iswitchb-mode} to @code{t} (@pxref{Easy
+Customization}).
+
+@node Buffer Menus
+@subsection Customizing Buffer Menus
+
+@findex bs-show
+@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.
+@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 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 (``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.
+
+@ignore
+ arch-tag: 08c43460-f4f4-4b43-9cb5-1ea9ad991695
+@end ignore