annotate man/buffers.texi @ 70964:e5adfcfcffa0

* ses.el (defadvice undo-more): Delete this defadvice. The undo overrides will now be done a different way. (ses-set-parameter): Reapply this function for undo. (ses-set-header-row): Reconstruct header row during undo. (ses-widen): New function. (ses-goto-data, ses-reconstruct-all): Use new function. (ses-command-hook): Widen buffer during undo, before unupdating the cells. (ses-insert-row, ses-delete-row): Widen buffer during undo. (ses-load, ses-header-row): Permit empty (zero-row) spreadsheets. (ses-read-cell): Avoid stupid warning for RET RET on a cell whose formula hasn't been executed yet.
author Jonathan Yavner <jyavner@member.fsf.org>
date Fri, 26 May 2006 17:39:06 +0000
parents 69ce7ff6d07b
children 4d628cade603 a5812696f7bf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
64890
3723093a21fd Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 62484
diff changeset
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
68639
dc2d5a6655a3 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 68547
diff changeset
3 @c 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @node Buffers, Windows, Files, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @chapter Using Multiple Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
7
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @cindex buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
9 The text you are editing in Emacs resides in an object called a
Dave Love <fx@gnu.org>
parents:
diff changeset
10 @dfn{buffer}. Each time you visit a file, a buffer is created to hold the
Dave Love <fx@gnu.org>
parents:
diff changeset
11 file's text. Each time you invoke Dired, a buffer is created to hold the
Dave Love <fx@gnu.org>
parents:
diff changeset
12 directory listing. If you send a message with @kbd{C-x m}, a buffer named
Dave Love <fx@gnu.org>
parents:
diff changeset
13 @samp{*mail*} is used to hold the text of the message. When you ask for a
Dave Love <fx@gnu.org>
parents:
diff changeset
14 command's documentation, that appears in a buffer called @samp{*Help*}.
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 @cindex selected buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
17 @cindex current buffer
37987
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
18 At any time, one and only one buffer is @dfn{current}. It is also
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
19 called the @dfn{selected buffer}. Often we say that a command operates on
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
20 ``the buffer'' as if there were only one; but really this means that the
37987
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
21 command operates on the current buffer (most commands do).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
22
37121
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
23 When Emacs has multiple windows, each window has its own chosen
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
24 buffer and displays it; at any time, only one of the windows is
37987
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
25 selected, and its chosen buffer is the current buffer. Each window's
37121
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
26 mode line normally displays the name of the window's chosen buffer
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
27 (@pxref{Windows}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
28
Dave Love <fx@gnu.org>
parents:
diff changeset
29 Each buffer has a name, which can be of any length, and you can select
Dave Love <fx@gnu.org>
parents:
diff changeset
30 any buffer by giving its name. Most buffers are made by visiting files,
Dave Love <fx@gnu.org>
parents:
diff changeset
31 and their names are derived from the files' names. But you can also create
Dave Love <fx@gnu.org>
parents:
diff changeset
32 an empty buffer with any name you want. A newly started Emacs has a buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
33 named @samp{*scratch*} which can be used for evaluating Lisp expressions in
Dave Love <fx@gnu.org>
parents:
diff changeset
34 Emacs. The distinction between upper and lower case matters in buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
35 names.
Dave Love <fx@gnu.org>
parents:
diff changeset
36
Dave Love <fx@gnu.org>
parents:
diff changeset
37 Each buffer records individually what file it is visiting, whether it is
Dave Love <fx@gnu.org>
parents:
diff changeset
38 modified, and what major mode and minor modes are in effect in it
Dave Love <fx@gnu.org>
parents:
diff changeset
39 (@pxref{Major Modes}). Any Emacs variable can be made @dfn{local to} a
Dave Love <fx@gnu.org>
parents:
diff changeset
40 particular buffer, meaning its value in that buffer can be different from
Dave Love <fx@gnu.org>
parents:
diff changeset
41 the value in other buffers. @xref{Locals}.
Dave Love <fx@gnu.org>
parents:
diff changeset
42
37794
7a3c8aa0ba51 (Buffers): Document the maximum buffer size.
Eli Zaretskii <eliz@gnu.org>
parents: 37773
diff changeset
43 @cindex buffer size, maximum
7a3c8aa0ba51 (Buffers): Document the maximum buffer size.
Eli Zaretskii <eliz@gnu.org>
parents: 37773
diff changeset
44 A buffer's size cannot be larger than some maximum, which is defined
37821
e76a89af15b4 (Buffers): Fix a typo.
Eli Zaretskii <eliz@gnu.org>
parents: 37794
diff changeset
45 by the largest buffer position representable by the @dfn{Emacs integer}
e76a89af15b4 (Buffers): Fix a typo.
Eli Zaretskii <eliz@gnu.org>
parents: 37794
diff changeset
46 data type. This is because Emacs tracks buffer positions using that
56744
c2bec3c79554 (Buffers): Maximum buffer size is now 256M on 32-bit machines.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54378
diff changeset
47 data type. For 32-bit machines, the largest buffer size is 256
37821
e76a89af15b4 (Buffers): Fix a typo.
Eli Zaretskii <eliz@gnu.org>
parents: 37794
diff changeset
48 megabytes.
37794
7a3c8aa0ba51 (Buffers): Document the maximum buffer size.
Eli Zaretskii <eliz@gnu.org>
parents: 37773
diff changeset
49
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
50 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
51 * Select Buffer:: Creating a new buffer or reselecting an old one.
Dave Love <fx@gnu.org>
parents:
diff changeset
52 * List Buffers:: Getting a list of buffers that exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
53 * Misc Buffer:: Renaming; changing read-onlyness; copying text.
Dave Love <fx@gnu.org>
parents:
diff changeset
54 * Kill Buffer:: Killing buffers you no longer need.
Dave Love <fx@gnu.org>
parents:
diff changeset
55 * Several Buffers:: How to go through the list of all buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
56 and operate variously on several of them.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46457
diff changeset
57 * Indirect Buffers:: An indirect buffer shares the text of another buffer.
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
58 * Buffer Convenience:: Convenience and customization features for
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
59 buffer handling.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
60 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
61
Dave Love <fx@gnu.org>
parents:
diff changeset
62 @node Select Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
63 @section Creating and Selecting Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
64 @cindex change buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
65 @cindex switch buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
66
Dave Love <fx@gnu.org>
parents:
diff changeset
67 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
68 @item C-x b @var{buffer} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
69 Select or create a buffer named @var{buffer} (@code{switch-to-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
70 @item C-x 4 b @var{buffer} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
71 Similar, but select @var{buffer} in another window
Dave Love <fx@gnu.org>
parents:
diff changeset
72 (@code{switch-to-buffer-other-window}).
Dave Love <fx@gnu.org>
parents:
diff changeset
73 @item C-x 5 b @var{buffer} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
74 Similar, but select @var{buffer} in a separate frame
Dave Love <fx@gnu.org>
parents:
diff changeset
75 (@code{switch-to-buffer-other-frame}).
67742
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
76 @item C-x @key{LEFT}
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
77 Select the previous buffer in the list of existing buffers.
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
78 @item C-x @key{RIGHT}
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
79 Select the next buffer in the list of existing buffers.
62484
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
80 @item C-u M-g M-g
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
81 @itemx C-u M-g g
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
82 Read a number @var{n} and move to line @var{n} in the most recently
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
83 selected buffer other than the current buffer.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
84 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
85
Dave Love <fx@gnu.org>
parents:
diff changeset
86 @kindex C-x b
Dave Love <fx@gnu.org>
parents:
diff changeset
87 @findex switch-to-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
88 To select the buffer named @var{bufname}, type @kbd{C-x b @var{bufname}
Dave Love <fx@gnu.org>
parents:
diff changeset
89 @key{RET}}. This runs the command @code{switch-to-buffer} with argument
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
90 @var{bufname}. You can use completion to enter the buffer
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
91 name (@pxref{Completion}). An empty argument to @kbd{C-x b}
37987
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
92 specifies the buffer that was current most recently among those not
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
93 now displayed in any window.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
94
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
95 @kindex C-x @key{LEFT}
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
96 @kindex C-x @key{RIGHT}
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
97 @findex next-buffer
67603
589ce7251c9c * buffers.texi (Select Buffer): Change `prev-buffer' to
Károly Lőrentey <lorentey@elte.hu>
parents: 66581
diff changeset
98 @findex previous-buffer
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
99 For conveniently switching between a few buffers, use the commands
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
100 @kbd{C-x @key{LEFT}} and @kbd{C-x @key{RIGHT}}. @kbd{C-x @key{RIGHT}}
67603
589ce7251c9c * buffers.texi (Select Buffer): Change `prev-buffer' to
Károly Lőrentey <lorentey@elte.hu>
parents: 66581
diff changeset
101 (@code{previous-buffer}) selects the previous buffer (following the order
589ce7251c9c * buffers.texi (Select Buffer): Change `prev-buffer' to
Károly Lőrentey <lorentey@elte.hu>
parents: 66581
diff changeset
102 of most recent selection in the current frame), while @kbd{C-x @key{LEFT}}
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
103 (@code{next-buffer}) moves through buffers in the reverse direction.
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
104
37773
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
105 @kindex C-x 4 b
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
106 @findex switch-to-buffer-other-window
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
107 @vindex even-window-heights
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
108 To select a buffer in a window other than the current one, type
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
109 @kbd{C-x 4 b @var{bufname} @key{RET}}. This runs the command
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
110 @code{switch-to-buffer-other-window} which displays the buffer
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
111 @var{bufname} in another window. By default, if displaying the buffer
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
112 causes two vertically adjacent windows to be displayed, the heights of
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
113 those windows are evened out; to countermand that and preserve the
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
114 window configuration, set the variable @code{even-window-heights} to
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
115 @code{nil}.
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
116
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
117 @kindex C-x 5 b
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
118 @findex switch-to-buffer-other-frame
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
119 Similarly, @kbd{C-x 5 b @var{buffer} @key{RET}} runs the command
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
120 @code{switch-to-buffer-other-frame} which selects a buffer in another
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
121 frame.
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
122
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
123 @vindex display-buffer-reuse-frames
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
124 You can control how certain buffers are handled by these commands by
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
125 customizing the variables @code{special-display-buffer-names},
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
126 @code{special-display-regexps}, @code{same-window-buffer-names}, and
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
127 @code{same-window-regexps}. See @ref{Force Same Window}, and
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
128 @ref{Special Buffer Frames}, for more about these variables. In
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
129 addition, if the value of @code{display-buffer-reuse-frames} is
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
130 non-@code{nil}, and the buffer you want to switch to is already
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
131 displayed in some frame, Emacs will just raise that frame.
37773
9b4454d43e72 (Select Buffer): Document even-window-heights and
Eli Zaretskii <eliz@gnu.org>
parents: 37121
diff changeset
132
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
133 Most buffers are created by visiting files, or by Emacs commands that
Dave Love <fx@gnu.org>
parents:
diff changeset
134 want to display some text, but you can also create a buffer explicitly
Dave Love <fx@gnu.org>
parents:
diff changeset
135 by typing @kbd{C-x b @var{bufname} @key{RET}}. This makes a new, empty
Dave Love <fx@gnu.org>
parents:
diff changeset
136 buffer that is not visiting any file, and selects it for editing. Such
Dave Love <fx@gnu.org>
parents:
diff changeset
137 buffers are used for making notes to yourself. If you try to save one,
Dave Love <fx@gnu.org>
parents:
diff changeset
138 you are asked for the file name to use. The new buffer's major mode is
Dave Love <fx@gnu.org>
parents:
diff changeset
139 determined by the value of @code{default-major-mode} (@pxref{Major
Dave Love <fx@gnu.org>
parents:
diff changeset
140 Modes}).
Dave Love <fx@gnu.org>
parents:
diff changeset
141
Dave Love <fx@gnu.org>
parents:
diff changeset
142 Note that @kbd{C-x C-f}, and any other command for visiting a file,
Dave Love <fx@gnu.org>
parents:
diff changeset
143 can also be used to switch to an existing file-visiting buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
144 @xref{Visiting}.
Dave Love <fx@gnu.org>
parents:
diff changeset
145
62484
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
146 @kbd{C-u M-g M-g}, that is @code{goto-line} with a prefix argument
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
147 of just @kbd{C-u}, reads a number @var{n} using the minibuffer,
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
148 selects the most recently selected buffer other than the current
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
149 buffer in another window, and then moves point to the beginning of
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
150 line number @var{n} in that buffer. This is mainly useful in a buffer
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
151 that refers to line numbers in another buffer: if point is on or just
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
152 after a number, @code{goto-line} uses that number as the default for
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
153 @var{n}. Note that prefix arguments other than just @kbd{C-u} behave
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
154 differently. @kbd{C-u 4 M-g M-g} goes to line 4 in the @emph{current}
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
155 buffer, without reading a number from the minibuffer. (Remember that
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
156 @kbd{M-g M-g} without prefix argument reads a number @var{n} and then
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
157 moves to line number @var{n} in the current buffer.)
f13767c26b95 (Select Buffer): Document `C-u M-g M-g'.
Luc Teirlinck <teirllm@auburn.edu>
parents: 59884
diff changeset
158
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
159 Emacs uses buffer names that start with a space for internal purposes.
Dave Love <fx@gnu.org>
parents:
diff changeset
160 It treats these buffers specially in minor ways---for example, by
Dave Love <fx@gnu.org>
parents:
diff changeset
161 default they do not record undo information. It is best to avoid using
Dave Love <fx@gnu.org>
parents:
diff changeset
162 such buffer names yourself.
Dave Love <fx@gnu.org>
parents:
diff changeset
163
Dave Love <fx@gnu.org>
parents:
diff changeset
164 @node List Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
165 @section Listing Existing Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
166
Dave Love <fx@gnu.org>
parents:
diff changeset
167 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
168 @item C-x C-b
Dave Love <fx@gnu.org>
parents:
diff changeset
169 List the existing buffers (@code{list-buffers}).
Dave Love <fx@gnu.org>
parents:
diff changeset
170 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
171
Dave Love <fx@gnu.org>
parents:
diff changeset
172 @cindex listing current buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
173 @kindex C-x C-b
Dave Love <fx@gnu.org>
parents:
diff changeset
174 @findex list-buffers
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
175 To display a list of existing buffers, type @kbd{C-x C-b}. Each
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
176 line in the list shows one buffer's name, major mode and visited file.
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
177 The buffers are listed in the order that they were current; the
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
178 buffers that were current most recently come first.
Dave Love <fx@gnu.org>
parents:
diff changeset
179
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
180 @samp{*} in the first field of a line indicates the buffer is
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
181 ``modified.'' If several buffers are modified, it may be time to save
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
182 some with @kbd{C-x s} (@pxref{Save Commands}). @samp{%} indicates a
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
183 read-only buffer. @samp{.} marks the current buffer. Here is an
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
184 example of a buffer list:@refill
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
185
Dave Love <fx@gnu.org>
parents:
diff changeset
186 @smallexample
52041
188c9747f9bb (List Buffers): Fix spacing in header line of example.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 52039
diff changeset
187 CRM Buffer Size Mode File
52039
c9680db50e88 (List Buffers): Fix previous change.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 51900
diff changeset
188 . * .emacs 3294 Emacs-Lisp ~/.emacs
c9680db50e88 (List Buffers): Fix previous change.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 51900
diff changeset
189 % *Help* 101 Help
51900
118c9a7b0a1b (List Buffers): Adjust to new format of *Buffer List*.
Juanma Barranquero <lekktu@gmail.com>
parents: 49600
diff changeset
190 search.c 86055 C ~/cvs/emacs/src/search.c
118c9a7b0a1b (List Buffers): Adjust to new format of *Buffer List*.
Juanma Barranquero <lekktu@gmail.com>
parents: 49600
diff changeset
191 % src 20959 Dired by name ~/cvs/emacs/src/
52039
c9680db50e88 (List Buffers): Fix previous change.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 51900
diff changeset
192 * *mail* 42 Mail
51900
118c9a7b0a1b (List Buffers): Adjust to new format of *Buffer List*.
Juanma Barranquero <lekktu@gmail.com>
parents: 49600
diff changeset
193 % HELLO 1607 Fundamental ~/cvs/emacs/etc/HELLO
118c9a7b0a1b (List Buffers): Adjust to new format of *Buffer List*.
Juanma Barranquero <lekktu@gmail.com>
parents: 49600
diff changeset
194 % NEWS 481184 Outline ~/cvs/emacs/etc/NEWS
118c9a7b0a1b (List Buffers): Adjust to new format of *Buffer List*.
Juanma Barranquero <lekktu@gmail.com>
parents: 49600
diff changeset
195 *scratch* 191 Lisp Interaction
118c9a7b0a1b (List Buffers): Adjust to new format of *Buffer List*.
Juanma Barranquero <lekktu@gmail.com>
parents: 49600
diff changeset
196 * *Messages* 1554 Fundamental
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
197 @end smallexample
Dave Love <fx@gnu.org>
parents:
diff changeset
198
Dave Love <fx@gnu.org>
parents:
diff changeset
199 @noindent
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
200 Note that the buffer @samp{*Help*} was made by a help request; it is
52039
c9680db50e88 (List Buffers): Fix previous change.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 51900
diff changeset
201 not visiting any file. The buffer @code{src} was made by Dired on the
c9680db50e88 (List Buffers): Fix previous change.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 51900
diff changeset
202 directory @file{~/cvs/emacs/src/}. You can list only buffers that are
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
203 visiting files by giving the command a prefix argument, as in
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
204 @kbd{C-u C-x C-b}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
205
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
206 @code{list-buffers} omits buffers whose names begin with a space,
40491
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
207 unless they visit files: such buffers are used internally by Emacs.
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
208
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
209 @need 2000
Dave Love <fx@gnu.org>
parents:
diff changeset
210 @node Misc Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
211 @section Miscellaneous Buffer Operations
Dave Love <fx@gnu.org>
parents:
diff changeset
212
Dave Love <fx@gnu.org>
parents:
diff changeset
213 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
214 @item C-x C-q
46457
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
215 Toggle read-only status of buffer (@code{toggle-read-only}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
216 @item M-x rename-buffer @key{RET} @var{name} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
217 Change the name of the current buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
218 @item M-x rename-uniquely
Dave Love <fx@gnu.org>
parents:
diff changeset
219 Rename the current buffer by adding @samp{<@var{number}>} to the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
220 @item M-x view-buffer @key{RET} @var{buffer} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
221 Scroll through buffer @var{buffer}.
Dave Love <fx@gnu.org>
parents:
diff changeset
222 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
223
Dave Love <fx@gnu.org>
parents:
diff changeset
224 @kindex C-x C-q
Dave Love <fx@gnu.org>
parents:
diff changeset
225 @vindex buffer-read-only
Dave Love <fx@gnu.org>
parents:
diff changeset
226 @cindex read-only buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
227 A buffer can be @dfn{read-only}, which means that commands to change
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
228 its contents are not allowed. The mode line indicates read-only
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
229 buffers with @samp{%%} or @samp{%*} near the left margin. Read-only
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
230 buffers are usually made by subsystems such as Dired and Rmail that
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
231 have special commands to operate on the text; also by visiting a file
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
232 whose access control says you cannot write it.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
233
46457
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
234 @findex toggle-read-only
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
235 If you wish to make changes in a read-only buffer, use the command
46457
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
236 @kbd{C-x C-q} (@code{toggle-read-only}). It makes a read-only buffer
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
237 writable, and makes a writable buffer read-only. This
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
238 works by setting the variable @code{buffer-read-only}, which has a local
Dave Love <fx@gnu.org>
parents:
diff changeset
239 value in each buffer and makes the buffer read-only if its value is
46457
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
240 non-@code{nil}. If you have files under version control, you may find
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
241 it convenient to bind @kbd{C-x C-q} to @code{vc-toggle-read-only}
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
242 instead. Then, typing @kbd{C-x C-q} not only changes the read-only
1649dc94d8df Let C-x C-q refer to toggle-read-only, not vc-toggle-read-only.
André Spiegel <spiegel@gnu.org>
parents: 40616
diff changeset
243 flag, but it also checks the file in or out. @xref{Version
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
244 Control}.
Dave Love <fx@gnu.org>
parents:
diff changeset
245
Dave Love <fx@gnu.org>
parents:
diff changeset
246 @findex rename-buffer
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
247 @kbd{M-x rename-buffer} changes the name of the current buffer. You
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
248 specify the new name as a minibuffer argument; there is no default.
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
249 If you specify a name that is in use for some other buffer, an error
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
250 happens and no renaming is done.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
251
54378
3577d1f9f73a (Misc Buffer): Add index entry for rename-uniquely.
Richard M. Stallman <rms@gnu.org>
parents: 54270
diff changeset
252 @findex rename-uniquely
54270
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
253 @kbd{M-x rename-uniquely} renames the current buffer to a similar
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
254 name with a numeric suffix added to make it both different and unique.
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
255 This command does not need an argument. It is useful for creating
66581
fc256e77595d * files.texi (Compressed Files): Fix typo.
Romain Francoise <romain@orebokech.com>
parents: 65536
diff changeset
256 multiple shell buffers: if you rename the @samp{*shell*} buffer, then
54270
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
257 do @kbd{M-x shell} again, it makes a new shell buffer named
66581
fc256e77595d * files.texi (Compressed Files): Fix typo.
Romain Francoise <romain@orebokech.com>
parents: 65536
diff changeset
258 @samp{*shell*}; meanwhile, the old shell buffer continues to exist
54270
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
259 under its new name. This method is also good for mail buffers,
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
260 compilation buffers, and most Emacs features that create special
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
261 buffers with particular names. (With some of these features, such as
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
262 @kbd{M-x compile}, @kbd{M-x grep} an @kbd{M-x info}, you need to
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
263 switch to some other buffer before using the command, in order for it
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
264 to make a different buffer.)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
265
Dave Love <fx@gnu.org>
parents:
diff changeset
266 @findex view-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
267 @kbd{M-x view-buffer} is much like @kbd{M-x view-file} (@pxref{Misc
Dave Love <fx@gnu.org>
parents:
diff changeset
268 File Ops}) except that it examines an already existing Emacs buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
269 View mode provides commands for scrolling through the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
270 conveniently but not for changing it. When you exit View mode with
Dave Love <fx@gnu.org>
parents:
diff changeset
271 @kbd{q}, that switches back to the buffer (and the position) which was
Dave Love <fx@gnu.org>
parents:
diff changeset
272 previously displayed in the window. Alternatively, if you exit View
Dave Love <fx@gnu.org>
parents:
diff changeset
273 mode with @kbd{e}, the buffer and the value of point that resulted from
Dave Love <fx@gnu.org>
parents:
diff changeset
274 your perusal remain in effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
275
Dave Love <fx@gnu.org>
parents:
diff changeset
276 The commands @kbd{M-x append-to-buffer} and @kbd{M-x insert-buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
277 can be used to copy text from one buffer to another. @xref{Accumulating
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
278 Text}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
279
Dave Love <fx@gnu.org>
parents:
diff changeset
280 @node Kill Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
281 @section Killing Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
282
Dave Love <fx@gnu.org>
parents:
diff changeset
283 @cindex killing buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
284 If you continue an Emacs session for a while, you may accumulate a
Dave Love <fx@gnu.org>
parents:
diff changeset
285 large number of buffers. You may then find it convenient to @dfn{kill}
Dave Love <fx@gnu.org>
parents:
diff changeset
286 the buffers you no longer need. On most operating systems, killing a
Dave Love <fx@gnu.org>
parents:
diff changeset
287 buffer releases its space back to the operating system so that other
Dave Love <fx@gnu.org>
parents:
diff changeset
288 programs can use it. Here are some commands for killing buffers:
Dave Love <fx@gnu.org>
parents:
diff changeset
289
Dave Love <fx@gnu.org>
parents:
diff changeset
290 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
291 @item C-x k @var{bufname} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
292 Kill buffer @var{bufname} (@code{kill-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
293 @item M-x kill-some-buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
294 Offer to kill each buffer, one by one.
Dave Love <fx@gnu.org>
parents:
diff changeset
295 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
296
Dave Love <fx@gnu.org>
parents:
diff changeset
297 @findex kill-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
298 @findex kill-some-buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
299 @kindex C-x k
Dave Love <fx@gnu.org>
parents:
diff changeset
300
Dave Love <fx@gnu.org>
parents:
diff changeset
301 @kbd{C-x k} (@code{kill-buffer}) kills one buffer, whose name you
37987
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
302 specify in the minibuffer. The default, used if you type just
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
303 @key{RET} in the minibuffer, is to kill the current buffer. If you
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
304 kill the current buffer, another buffer becomes current: one that was
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
305 current in the recent past but is not displayed in any window now. If
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
306 you ask to kill a file-visiting buffer that is modified (has unsaved
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
307 editing), then you must confirm with @kbd{yes} before the buffer is
39cfe73648c8 selected buffer <=> current buffer.
Richard M. Stallman <rms@gnu.org>
parents: 37821
diff changeset
308 killed.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
309
Dave Love <fx@gnu.org>
parents:
diff changeset
310 The command @kbd{M-x kill-some-buffers} asks about each buffer, one by
Dave Love <fx@gnu.org>
parents:
diff changeset
311 one. An answer of @kbd{y} means to kill the buffer. Killing the current
Dave Love <fx@gnu.org>
parents:
diff changeset
312 buffer or a buffer containing unsaved changes selects a new buffer or asks
Dave Love <fx@gnu.org>
parents:
diff changeset
313 for confirmation just like @code{kill-buffer}.
Dave Love <fx@gnu.org>
parents:
diff changeset
314
Dave Love <fx@gnu.org>
parents:
diff changeset
315 The buffer menu feature (@pxref{Several Buffers}) is also convenient
Dave Love <fx@gnu.org>
parents:
diff changeset
316 for killing various buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
317
Dave Love <fx@gnu.org>
parents:
diff changeset
318 @vindex kill-buffer-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
319 If you want to do something special every time a buffer is killed, you
Dave Love <fx@gnu.org>
parents:
diff changeset
320 can add hook functions to the hook @code{kill-buffer-hook} (@pxref{Hooks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
321
Dave Love <fx@gnu.org>
parents:
diff changeset
322 @findex clean-buffer-list
Dave Love <fx@gnu.org>
parents:
diff changeset
323 If you run one Emacs session for a period of days, as many people do,
Dave Love <fx@gnu.org>
parents:
diff changeset
324 it can fill up with buffers that you used several days ago. The command
Dave Love <fx@gnu.org>
parents:
diff changeset
325 @kbd{M-x clean-buffer-list} is a convenient way to purge them; it kills
Dave Love <fx@gnu.org>
parents:
diff changeset
326 all the unmodified buffers that you have not used for a long time. An
Dave Love <fx@gnu.org>
parents:
diff changeset
327 ordinary buffer is killed if it has not been displayed for three days;
Dave Love <fx@gnu.org>
parents:
diff changeset
328 however, you can specify certain buffers that should never be killed
Dave Love <fx@gnu.org>
parents:
diff changeset
329 automatically, and others that should be killed if they have been unused
Dave Love <fx@gnu.org>
parents:
diff changeset
330 for a mere hour.
Dave Love <fx@gnu.org>
parents:
diff changeset
331
Dave Love <fx@gnu.org>
parents:
diff changeset
332 @cindex Midnight mode
Dave Love <fx@gnu.org>
parents:
diff changeset
333 @vindex midnight-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
334 @vindex midnight-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
335 You can also have this buffer purging done for you, every day at
Dave Love <fx@gnu.org>
parents:
diff changeset
336 midnight, by enabling Midnight mode. Midnight mode operates each day at
Dave Love <fx@gnu.org>
parents:
diff changeset
337 midnight; at that time, it runs @code{clean-buffer-list}, or whichever
Dave Love <fx@gnu.org>
parents:
diff changeset
338 functions you have placed in the normal hook @code{midnight-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
339 (@pxref{Hooks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
340
Dave Love <fx@gnu.org>
parents:
diff changeset
341 To enable Midnight mode, use the Customization buffer to set the
Dave Love <fx@gnu.org>
parents:
diff changeset
342 variable @code{midnight-mode} to @code{t}. @xref{Easy Customization}.
Dave Love <fx@gnu.org>
parents:
diff changeset
343
Dave Love <fx@gnu.org>
parents:
diff changeset
344 @node Several Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
345 @section Operating on Several Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
346 @cindex buffer menu
Dave Love <fx@gnu.org>
parents:
diff changeset
347
Dave Love <fx@gnu.org>
parents:
diff changeset
348 The @dfn{buffer-menu} facility is like a ``Dired for buffers''; it allows
Dave Love <fx@gnu.org>
parents:
diff changeset
349 you to request operations on various Emacs buffers by editing an Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
350 buffer containing a list of them. You can save buffers, kill them
Dave Love <fx@gnu.org>
parents:
diff changeset
351 (here called @dfn{deleting} them, for consistency with Dired), or display
Dave Love <fx@gnu.org>
parents:
diff changeset
352 them.
Dave Love <fx@gnu.org>
parents:
diff changeset
353
Dave Love <fx@gnu.org>
parents:
diff changeset
354 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
355 @item M-x buffer-menu
Dave Love <fx@gnu.org>
parents:
diff changeset
356 Begin editing a buffer listing all Emacs buffers.
40491
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
357 @item M-x buffer-menu-other-window.
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
358 Similar, but do it in another window.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
359 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
360
Dave Love <fx@gnu.org>
parents:
diff changeset
361 @findex buffer-menu
40491
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
362 @findex buffer-menu-other-window
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
363 The command @code{buffer-menu} writes a list of all Emacs
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
364 buffers@footnote{Buffers which don't visit files and whose names begin
40616
bcf374d89a4d (Several Buffers): Add a cross-reference to the description of the
Eli Zaretskii <eliz@gnu.org>
parents: 40491
diff changeset
365 with a space are omitted: these are used internally by Emacs.} into the
bcf374d89a4d (Several Buffers): Add a cross-reference to the description of the
Eli Zaretskii <eliz@gnu.org>
parents: 40491
diff changeset
366 buffer @samp{*Buffer List*}, and selects that buffer in Buffer Menu
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
367 mode.
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
368
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
369 The buffer is read-only, and can be
40616
bcf374d89a4d (Several Buffers): Add a cross-reference to the description of the
Eli Zaretskii <eliz@gnu.org>
parents: 40491
diff changeset
370 changed only through the special commands described in this section.
bcf374d89a4d (Several Buffers): Add a cross-reference to the description of the
Eli Zaretskii <eliz@gnu.org>
parents: 40491
diff changeset
371 The usual Emacs cursor motion commands can be used in the @samp{*Buffer
bcf374d89a4d (Several Buffers): Add a cross-reference to the description of the
Eli Zaretskii <eliz@gnu.org>
parents: 40491
diff changeset
372 List*} buffer. The following commands apply to the buffer described on
bcf374d89a4d (Several Buffers): Add a cross-reference to the description of the
Eli Zaretskii <eliz@gnu.org>
parents: 40491
diff changeset
373 the current line.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
374
Dave Love <fx@gnu.org>
parents:
diff changeset
375 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
376 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
377 Request to delete (kill) the buffer, then move down. The request
Dave Love <fx@gnu.org>
parents:
diff changeset
378 shows as a @samp{D} on the line, before the buffer name. Requested
Dave Love <fx@gnu.org>
parents:
diff changeset
379 deletions take place when you type the @kbd{x} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
380 @item C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
381 Like @kbd{d} but move up afterwards instead of down.
Dave Love <fx@gnu.org>
parents:
diff changeset
382 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
383 Request to save the buffer. The request shows as an @samp{S} on the
Dave Love <fx@gnu.org>
parents:
diff changeset
384 line. Requested saves take place when you type the @kbd{x} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
385 You may request both saving and deletion for the same buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
386 @item x
Dave Love <fx@gnu.org>
parents:
diff changeset
387 Perform previously requested deletions and saves.
Dave Love <fx@gnu.org>
parents:
diff changeset
388 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
389 Remove any request made for the current line, and move down.
Dave Love <fx@gnu.org>
parents:
diff changeset
390 @item @key{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
391 Move to previous line and remove any request made for that line.
Dave Love <fx@gnu.org>
parents:
diff changeset
392 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
393
Dave Love <fx@gnu.org>
parents:
diff changeset
394 The @kbd{d}, @kbd{C-d}, @kbd{s} and @kbd{u} commands to add or remove
Dave Love <fx@gnu.org>
parents:
diff changeset
395 flags also move down (or up) one line. They accept a numeric argument
Dave Love <fx@gnu.org>
parents:
diff changeset
396 as a repeat count.
Dave Love <fx@gnu.org>
parents:
diff changeset
397
Dave Love <fx@gnu.org>
parents:
diff changeset
398 These commands operate immediately on the buffer listed on the current
Dave Love <fx@gnu.org>
parents:
diff changeset
399 line:
Dave Love <fx@gnu.org>
parents:
diff changeset
400
Dave Love <fx@gnu.org>
parents:
diff changeset
401 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
402 @item ~
Dave Love <fx@gnu.org>
parents:
diff changeset
403 Mark the buffer ``unmodified.'' The command @kbd{~} does this
Dave Love <fx@gnu.org>
parents:
diff changeset
404 immediately when you type it.
Dave Love <fx@gnu.org>
parents:
diff changeset
405 @item %
Dave Love <fx@gnu.org>
parents:
diff changeset
406 Toggle the buffer's read-only flag. The command @kbd{%} does
Dave Love <fx@gnu.org>
parents:
diff changeset
407 this immediately when you type it.
Dave Love <fx@gnu.org>
parents:
diff changeset
408 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
409 Visit the buffer as a tags table. @xref{Select Tags Table}.
Dave Love <fx@gnu.org>
parents:
diff changeset
410 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
411
Dave Love <fx@gnu.org>
parents:
diff changeset
412 There are also commands to select another buffer or buffers:
Dave Love <fx@gnu.org>
parents:
diff changeset
413
Dave Love <fx@gnu.org>
parents:
diff changeset
414 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
415 @item q
Dave Love <fx@gnu.org>
parents:
diff changeset
416 Quit the buffer menu---immediately display the most recent formerly
Dave Love <fx@gnu.org>
parents:
diff changeset
417 visible buffer in its place.
Dave Love <fx@gnu.org>
parents:
diff changeset
418 @item @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
419 @itemx f
Dave Love <fx@gnu.org>
parents:
diff changeset
420 Immediately select this line's buffer in place of the @samp{*Buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
421 List*} buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
422 @item o
Dave Love <fx@gnu.org>
parents:
diff changeset
423 Immediately select this line's buffer in another window as if by
Dave Love <fx@gnu.org>
parents:
diff changeset
424 @kbd{C-x 4 b}, leaving @samp{*Buffer List*} visible.
Dave Love <fx@gnu.org>
parents:
diff changeset
425 @item C-o
Dave Love <fx@gnu.org>
parents:
diff changeset
426 Immediately display this line's buffer in another window, but don't
Dave Love <fx@gnu.org>
parents:
diff changeset
427 select the window.
Dave Love <fx@gnu.org>
parents:
diff changeset
428 @item 1
Dave Love <fx@gnu.org>
parents:
diff changeset
429 Immediately select this line's buffer in a full-screen window.
Dave Love <fx@gnu.org>
parents:
diff changeset
430 @item 2
56744
c2bec3c79554 (Buffers): Maximum buffer size is now 256M on 32-bit machines.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54378
diff changeset
431 Immediately set up two windows, with this line's buffer selected in
c2bec3c79554 (Buffers): Maximum buffer size is now 256M on 32-bit machines.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54378
diff changeset
432 one, and the previously current buffer (aside from the buffer
c2bec3c79554 (Buffers): Maximum buffer size is now 256M on 32-bit machines.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54378
diff changeset
433 @samp{*Buffer List*}) displayed in the other.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
434 @item b
Dave Love <fx@gnu.org>
parents:
diff changeset
435 Bury the buffer listed on this line.
Dave Love <fx@gnu.org>
parents:
diff changeset
436 @item m
Dave Love <fx@gnu.org>
parents:
diff changeset
437 Mark this line's buffer to be displayed in another window if you exit
Dave Love <fx@gnu.org>
parents:
diff changeset
438 with the @kbd{v} command. The request shows as a @samp{>} at the
Dave Love <fx@gnu.org>
parents:
diff changeset
439 beginning of the line. (A single buffer may not have both a delete
Dave Love <fx@gnu.org>
parents:
diff changeset
440 request and a display request.)
Dave Love <fx@gnu.org>
parents:
diff changeset
441 @item v
Dave Love <fx@gnu.org>
parents:
diff changeset
442 Immediately select this line's buffer, and also display in other windows
Dave Love <fx@gnu.org>
parents:
diff changeset
443 any buffers previously marked with the @kbd{m} command. If you have not
Dave Love <fx@gnu.org>
parents:
diff changeset
444 marked any buffers, this command is equivalent to @kbd{1}.
Dave Love <fx@gnu.org>
parents:
diff changeset
445 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
446
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
447 There is also a command that affects the entire buffer list:
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
448
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
449 @table @kbd
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
450 @item T
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
451 Delete, or reinsert, lines for non-file buffers. This command toggles
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
452 the inclusion of such buffers in the buffer list.
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
453 @end table
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
454
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
455 What @code{buffer-menu} actually does is create and switch to a
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
456 suitable buffer, and turn on Buffer Menu mode in it. Everything else
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
457 described above is implemented by the special commands provided in
Dave Love <fx@gnu.org>
parents:
diff changeset
458 Buffer Menu mode. One consequence of this is that you can switch from
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
459 the @samp{*Buffer List*} buffer to another Emacs buffer, and edit
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
460 there. You can reselect the @samp{*Buffer List*} buffer later, to
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
461 perform the operations already requested, or you can kill it, or pay
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
462 no further attention to it.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
463
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
464 The list in the @samp{*Buffer List*} buffer looks exactly like the
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
465 buffer list described in @ref{List Buffers}, because they really are
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
466 the same. The only difference between @code{buffer-menu} and
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
467 @code{list-buffers} is that @code{buffer-menu} switches to the
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
468 @samp{*Buffer List*} buffer in the selected window;
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
469 @code{list-buffers} displays the same buffer in another window. If
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
470 you run @code{list-buffers} (that is, type @kbd{C-x C-b}) and select
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
471 the buffer list manually, you can use all of the commands described
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
472 here.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
473
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
474 Normally, the buffer @samp{*Buffer List*} is not updated
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
475 automatically when buffers are created and killed; its contents are
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
476 just text. If you have created, deleted or renamed buffers, the way
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
477 to update @samp{*Buffer List*} to show what you have done is to type
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
478 @kbd{g} (@code{revert-buffer}). You can make this happen regularly
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
479 every @code{auto-revert-interval} seconds if you enable Auto Revert
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
480 mode in this buffer, as long as it is not marked modified. Global
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
481 Auto Revert mode applies to the @samp{*Buffer List*} buffer only if
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
482 @code{global-auto-revert-non-file-buffers} is non-@code{nil}.
70447
9110c38cd1d0 (Several Buffers): Replace inforef to emacs-xtra by conditional xref's,
Eli Zaretskii <eliz@gnu.org>
parents: 68639
diff changeset
483 @iftex
70630
69ce7ff6d07b [iftex]: Replace @xref's to emacs-xtra with @inforef's.
Eli Zaretskii <eliz@gnu.org>
parents: 70472
diff changeset
484 @inforef{Autorevert,, emacs-xtra}, for details.
70447
9110c38cd1d0 (Several Buffers): Replace inforef to emacs-xtra by conditional xref's,
Eli Zaretskii <eliz@gnu.org>
parents: 68639
diff changeset
485 @end iftex
9110c38cd1d0 (Several Buffers): Replace inforef to emacs-xtra by conditional xref's,
Eli Zaretskii <eliz@gnu.org>
parents: 68639
diff changeset
486 @ifnottex
9110c38cd1d0 (Several Buffers): Replace inforef to emacs-xtra by conditional xref's,
Eli Zaretskii <eliz@gnu.org>
parents: 68639
diff changeset
487 @xref{Autorevert, global-auto-revert-non-file-buffers}, for details.
9110c38cd1d0 (Several Buffers): Replace inforef to emacs-xtra by conditional xref's,
Eli Zaretskii <eliz@gnu.org>
parents: 68639
diff changeset
488 @end ifnottex
9110c38cd1d0 (Several Buffers): Replace inforef to emacs-xtra by conditional xref's,
Eli Zaretskii <eliz@gnu.org>
parents: 68639
diff changeset
489
56744
c2bec3c79554 (Buffers): Maximum buffer size is now 256M on 32-bit machines.
Luc Teirlinck <teirllm@auburn.edu>
parents: 54378
diff changeset
490
40491
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
491 The command @code{buffer-menu-other-window} works the same as
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
492 @code{buffer-menu}, except that it displays the buffers list in
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
493 another window.
4ce165b55ef1 (List Buffers, Several Buffers): Document that internal buffers are
Eli Zaretskii <eliz@gnu.org>
parents: 39264
diff changeset
494
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
495 @node Indirect Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
496 @section Indirect Buffers
Dave Love <fx@gnu.org>
parents:
diff changeset
497 @cindex indirect buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
498 @cindex base buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
499
Dave Love <fx@gnu.org>
parents:
diff changeset
500 An @dfn{indirect buffer} shares the text of some other buffer, which
Dave Love <fx@gnu.org>
parents:
diff changeset
501 is called the @dfn{base buffer} of the indirect buffer. In some ways it
Dave Love <fx@gnu.org>
parents:
diff changeset
502 is the analogue, for buffers, of a symbolic link between files.
Dave Love <fx@gnu.org>
parents:
diff changeset
503
Dave Love <fx@gnu.org>
parents:
diff changeset
504 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
505 @findex make-indirect-buffer
36455
0f5618d75b4a (Indirect Buffers): Add a @key[RET}.
Gerd Moellmann <gerd@gnu.org>
parents: 36263
diff changeset
506 @item M-x make-indirect-buffer @key{RET} @var{base-buffer} @key{RET} @var{indirect-name} @key{RET}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
507 Create an indirect buffer named @var{indirect-name} whose base buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
508 is @var{base-buffer}.
31056
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
509 @findex clone-indirect-buffer
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
510 @item M-x clone-indirect-buffer @key{RET}
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
511 Create an indirect buffer that is a twin copy of the current buffer.
36884
3067f258e551 *** empty log message ***
Dave Love <fx@gnu.org>
parents: 36455
diff changeset
512 @item C-x 4 c
31056
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
513 @kindex C-x 4 c
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
514 @findex clone-indirect-buffer-other-window
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
515 Create an indirect buffer that is a twin copy of the current buffer, and
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
516 select it in another window (@code{clone-indirect-buffer-other-window}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
517 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
518
Dave Love <fx@gnu.org>
parents:
diff changeset
519 The text of the indirect buffer is always identical to the text of its
Dave Love <fx@gnu.org>
parents:
diff changeset
520 base buffer; changes made by editing either one are visible immediately
Dave Love <fx@gnu.org>
parents:
diff changeset
521 in the other. But in all other respects, the indirect buffer and its
Dave Love <fx@gnu.org>
parents:
diff changeset
522 base buffer are completely separate. They have different names,
Dave Love <fx@gnu.org>
parents:
diff changeset
523 different values of point, different narrowing, different markers,
Dave Love <fx@gnu.org>
parents:
diff changeset
524 different major modes, and different local variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
525
Dave Love <fx@gnu.org>
parents:
diff changeset
526 An indirect buffer cannot visit a file, but its base buffer can. If
Dave Love <fx@gnu.org>
parents:
diff changeset
527 you try to save the indirect buffer, that actually works by saving the
Dave Love <fx@gnu.org>
parents:
diff changeset
528 base buffer. Killing the base buffer effectively kills the indirect
Dave Love <fx@gnu.org>
parents:
diff changeset
529 buffer, but killing an indirect buffer has no effect on its base buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
530
Dave Love <fx@gnu.org>
parents:
diff changeset
531 One way to use indirect buffers is to display multiple views of an
Dave Love <fx@gnu.org>
parents:
diff changeset
532 outline. @xref{Outline Views}.
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
533
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
534 A quick and handy way to make an indirect buffer is with the command
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
535 @kbd{M-x clone-indirect-buffer}. It creates and selects an indirect
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
536 buffer whose base buffer is the current buffer. With a numeric
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
537 argument, it prompts for the name of the indirect buffer; otherwise it
67742
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
538 uses the name of the current buffer, with a @samp{<@var{n}>} suffix
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
539 added. @kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window})
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
540 works like @kbd{M-x clone-indirect-buffer}, but it selects the new
3dc88cb2b76a (Select Buffer): Change order in table to make "Similar" refer to the
Luc Teirlinck <teirllm@auburn.edu>
parents: 67603
diff changeset
541 buffer in another window.
31056
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
542
54270
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
543 The more general way to make an indirect buffer is with the command
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
544 @kbd{M-x make-indirect-buffer}. It creates an indirect buffer from
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
545 buffer @var{base-buffer}, under the name @var{indirect-name}. It
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
546 prompts for both @var{base-buffer} and @var{indirect-name} using the
3f4d59c8c90d (Misc Buffer): Explain use of M-x rename-uniquely
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
547 minibuffer.
31056
3d90d6c1f3b9 Document clone-indirect-buffer.
Eli Zaretskii <eliz@gnu.org>
parents: 30869
diff changeset
548
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
549 @node Buffer Convenience
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
550 @section Convenience Features and Customization of Buffer Handling
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
551
37121
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
552 This section describes several modes and features that make it more
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
553 convenient to switch between buffers.
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
554
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
555 @menu
59884
7e4885de870d (Select Buffer): Doc next-buffer and prev-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 56744
diff changeset
556 * Uniquify:: Making buffer names unique with directory parts.
31815
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
557 * Iswitchb:: Switching between buffers with substrings.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46457
diff changeset
558 * Buffer Menus:: Configurable buffer menu.
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
559 @end menu
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
560
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
561 @node Uniquify
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
562 @subsection Making Buffer Names Unique
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
563
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
564 @cindex unique buffer names
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
565 @cindex directories in buffer names
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
566 When several buffers visit identically-named files, Emacs must give
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
567 the buffers distinct names. The usual method for making buffer names
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
568 unique adds @samp{<2>}, @samp{<3>}, etc. to the end of the buffer
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
569 names (all but one of them).
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
570
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
571 @vindex uniquify-buffer-name-style
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
572 Other methods work by adding parts of each file's directory to the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
573 buffer name. To select one, customize the variable
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
574 @code{uniquify-buffer-name-style} (@pxref{Easy Customization}).
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
575
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
576 For instance, the @code{forward} naming method puts part of the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
577 directory name at the beginning of the buffer name; using this method,
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
578 buffers visiting @file{/u/mernst/tmp/Makefile} and
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
579 @file{/usr/projects/zaphod/Makefile} would be named
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
580 @samp{tmp/Makefile} and @samp{zaphod/Makefile}, respectively (instead
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
581 of @samp{Makefile} and @samp{Makefile<2>}).
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
582
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
583 By contrast, the @code{post-forward} naming method would call the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
584 buffers @samp{Makefile|tmp} and @samp{Makefile|zaphod}, and the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
585 @code{reverse} naming method would call them @samp{Makefile\tmp} and
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
586 @samp{Makefile\zaphod}. The nontrivial difference between
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
587 @code{post-forward} and @code{reverse} occurs when just one directory
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
588 name is not enough to distinguish two files; then @code{reverse} puts
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
589 the directory names in reverse order, so that @file{/top/middle/file}
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
590 becomes @samp{file\middle\top}, while @code{post-forward} puts them in
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
591 forward order after the file name, as in @samp{file|top/middle}.
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
592
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
593 Which rule to follow for putting the directory names in the buffer
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
594 name is not very important if you are going to @emph{look} at the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
595 buffer names before you type one. But as an experienced user, if you
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
596 know the rule, you won't have to look. And then you may find that one
68547
e709385ba493 Minor clarifications.
Richard M. Stallman <rms@gnu.org>
parents: 67742
diff changeset
597 rule or another is easier for you to remember and apply quickly.
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
598
31815
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
599 @node Iswitchb
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
600 @subsection Switching Between Buffers using Substrings
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
601
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
602 @findex iswitchb-mode
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
603 @cindex Iswitchb mode
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
604 @cindex mode, Iswitchb
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
605 @kindex C-x b @r{(Iswitchb mode)}
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
606 @kindex C-x 4 b @r{(Iswitchb mode)}
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
607 @kindex C-x 5 b @r{(Iswitchb mode)}
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
608 @kindex C-x 4 C-o @r{(Iswitchb mode)}
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
609
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
610 Iswitchb global minor mode provides convenient switching between
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
611 buffers using substrings of their names. It replaces the normal
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
612 definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
613 4 C-o} with alternative commands that are somewhat ``smarter.''
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
614
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
615 When one of these commands prompts you for a buffer name, you can
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
616 type in just a substring of the name you want to choose. As you enter
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
617 the substring, Iswitchb mode continuously displays a list of buffers
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
618 that match the substring you have typed.
31815
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
619
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
620 At any time, you can type @key{RET} to select the first buffer in
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
621 the list. So the way to select a particular buffer is to make it the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
622 first in the list. There are two ways to do this. You can type more
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
623 of the buffer name and thus narrow down the list, excluding unwanted
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
624 buffers above the desired one. Alternatively, you can use @kbd{C-s}
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
625 and @kbd{C-r} to rotate the list until the desired buffer is first.
31815
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
626
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
627 @key{TAB} while entering the buffer name performs completion on the
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
628 string you have entered, based on the displayed list of buffers.
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
629
37121
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
630 To enable Iswitchb mode, type @kbd{M-x iswitchb-mode}, or customize
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
631 the variable @code{iswitchb-mode} to @code{t} (@pxref{Easy
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
632 Customization}).
f9bd7ef13ddb Minor changes.
Richard M. Stallman <rms@gnu.org>
parents: 36884
diff changeset
633
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
634 @node Buffer Menus
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
635 @subsection Customizing Buffer Menus
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
636
31311
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
637 @findex bs-show
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
638 @cindex buffer list, customizable
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
639 @table @kbd
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
640 @item M-x bs-show
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
641 Make a list of buffers similarly to @kbd{M-x list-buffers} but
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
642 customizable.
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
643 @end table
a04fdd7a9207 bs-show
Dave Love <fx@gnu.org>
parents: 31185
diff changeset
644
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
645 @kbd{M-x bs-show} pops up a buffer list similar to the one normally
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
646 displayed by @kbd{C-x C-b} but which you can customize. If you prefer
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
647 this to the usual buffer list, you can bind this command to @kbd{C-x
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
648 C-b}. To customize this buffer list, use the @code{bs} Custom group
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
649 (@pxref{Easy Customization}).
30869
1827bd720842 (Buffer Convenience): New.
Dave Love <fx@gnu.org>
parents: 30772
diff changeset
650
31815
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
651 @findex msb-mode
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
652 @cindex mode, MSB
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
653 @cindex MSB mode
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
654 @cindex buffer menu
e0b702f0bc3c iswitchb, msb
Dave Love <fx@gnu.org>
parents: 31311
diff changeset
655 @findex mouse-buffer-menu
36143
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
656 @kindex C-Down-Mouse-1
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
657 MSB global minor mode (``MSB'' stands for ``mouse select buffer'')
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
658 provides a different and customizable mouse buffer menu which you may
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
659 prefer. It replaces the bindings of @code{mouse-buffer-menu},
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
660 normally on @kbd{C-Down-Mouse-1}, and the menu bar buffer menu. You
44a6f7ea121f Major rewrite of Uniquify node and Iswitchb node.
Richard M. Stallman <rms@gnu.org>
parents: 31815
diff changeset
661 can customize the menu in the @code{msb} Custom group.
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52041
diff changeset
662
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52041
diff changeset
663 @ignore
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52041
diff changeset
664 arch-tag: 08c43460-f4f4-4b43-9cb5-1ea9ad991695
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 52041
diff changeset
665 @end ignore