> For instance, if you said `C-u C-x b', perhaps the hidden buffers would
> be visible?
There is no need for a prefix, only to make a leading space special.
Andreas.
--
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
It would probably have stopped you from accidentally entering the
internal buffer by typing RET quickly after TAB.
Why would it have done that? I don't follow.
I don't see how it would have altered anything in this scenario.
There is supposed to be a simple way. You type a space at the beginning
of the minibuffer in order to specify these buffers.
I tried implementing this in internal-complete-buffer, but it had no effect
on the results: the hidden buffers were always visible anyway.
I guess the partial completion must have overridden it.
Partial completion is too powerful. Perhaps some extension of the
builtin completion is desirable by default, but this is too much.
1+
It is not so much that it is too "powerful", but that it can lead to unexpected
and wildly off-the-mark completion candidates (as you point out from time to
time, apparently with new surprise each time).
The other problem, which compounds this problem, is that multiple types of
completion/matching are tried, one after the other, in hopes of finding
candidates.
The default list of matching types includes partial completion. When a whole
set of completion types (including partial) is tried in sequence, the result can
be even more disorienting than is the result of partial completion on its own.
Instead of letting a user know that a given type of matching has come up with
`[No match]', and thus letting the user decide what to do about that (e.g. try a
different type of matching - or not), it automatically assumes that the user
wants to complete the current input at all costs, so it blithely moves on to the
next type of matching in the list...
To me, it's an overly clever misfeature.
The user has no control over this, other than customization of the list of
matching types to be used automatically. Such a choice of matching method /
completion style should not be just a customization-time option.
Better would be to have only one kind of completion used at a time (no automatic
sequencing), and let users hit a minibuffer key (i.e., on demand) to change to
the next completion type.
IOW, let users choose at completion time which completion style(s) to use, on
demand. Each time they change methods they can complete anew and find out
whether there are matches using that method.
The info `[No match]' is often helpful to users. By silently skipping over
match failures, quietly moving on to try other, entirely different types of
matching, we do users a disservice. Better to give them feedback about match
failures, and give them (dynamic) control over which matching mechanism to use
at any time.
> If I type C-x k mes TAB, it completes to ` *message-viewer RMAIL'.
Hmm... that's probably a bug of the `substring' completion-style (AFAIK
this doesn't happen with the partial-completion style).
I don't have a fix for it yet.
Stefan
But `substring' is not in the default value of completion-styles. So
how does it come into play here?
By the way, this documentation of the `emacs22' style:
Prefix completion that only operates on the text before point.
I.e. when completing "foo_bar" (where _ is the position of point),
it will consider all completions candidates matching the glob
pattern "foo*" and will add back "bar" to the end of it.
and a similar doc string of `basic', are either inaccurate/wrong (it
never tells explicitly whether the "glob pattern" is interpreted as
starting at the beginning of each candidate, but if it doesn't, why
talk about "prefix"?), or there's a bug in the implementation of these
styles, because I just customized completion-styles to include only
one style, either `emacs22' or `basic', and I still see that "C-x b
Mes TAB" completes to "*Messages*". Did I do something wrong?
If these completion styles are _supposed_ to match the "glob pattern"
not only at the beginning, then we should have an additional style
that does.
I think that fixing this will go a long way towards resolving
Richard's problem, because he will then be able to customize
completion-styles and have what he wants: the traditional, less
"imaginative", but much more predictable style of completion.
P.S. FWIW, I have no problems with the default completion operation,
but that's me.
For common UI features in Emacs, convenience is more important than
uniformity. This is one of them. Space at the start of a buffer
name has always had special treatment in several ways; turning off
the special treatment for completion is simply a bug.