From: "Drew Adams" <drew.adams@oracle.com>
To: "'martin rudalics'" <rudalics@gmx.at>,
"'Stefan Monnier'" <monnier@iro.umontreal.ca>
Cc: 'Chong Yidong' <cyd@stupidchicken.com>, emacs-devel@gnu.org
Subject: RE: display-buffer-alist simplifications
Date: Fri, 5 Aug 2011 10:45:28 -0700 [thread overview]
Message-ID: <B7BA9390546046959258B97F116058ED@us.oracle.com> (raw)
In-Reply-To: <4E3C13D4.9000707@gmx.at>
> The absurd consequence of this is that with `pop-up-frames' non-nil
> `ctl-x-4-map' becomes identical to `ctl-x-5-map'
Not quite. A nitpick: It's more correct to say that every buffer-display
binding in `ctl-x-4-map' uses another frame by default instead of another window
by default - like the bindings in `ctl-x-5-map' do.
In particular, it is not the case that every `C-x 5 <something>' binding
necessarily has a `C-x 4 <something>' counterpart. Binding `C-x 5 <f7>' to
`foobar' has no effect on `C-x 4 <f7>'.
> and `find-file-other-window' an alias for `find-file-other-frame'.
Yes. And this is a feature, not just an absurd consequence.
Just changing the value of option `pop-up-frames' makes Emacs magically use
another frame by default wherever it would normally use another window by
default. Pretty good stuff, IMHO.
> You won't find any explanation of this phenomena in the doc-strings of
> `pop-up-window' and `pop-up-frame' or in the documentation.
Not sure what you mean, but this phenomenon is clearly documented, I think.
In `(elisp) Choosing Window', the doc for `pop-up-frames' says:
This variable specifies whether `display-buffer' should make new
frames. If it is non-`nil', `display-buffer' looks for a window
already displaying... If it finds such a window...
Otherwise it makes a new frame...
Otherwise it makes a new frame. Pretty clear, no?
But it would also be good (er, would have been good, before the current
deprecation of `pop-up-frames') to mention this in at least some of places in
the __Emacs__ manual. Emacs users deserve(d) to know about it. E.g.:
1. `(emacs) Visiting', where we describe `C-x 4 f' and `C-x 5 f', and `(emacs)
Select Buffer', where we describe `C-x 4 b' and `C-x 5 b'
2. `(emacs) Creating Frames', where we discuss both `C-x 4' and `C-x 5'
3. `(emacs) Pop Up Window', where we describe `C-x 4' as a prefix that means use
another window
We should in fact (even for Emacs 24) mention also in #3 that `C-x 5' is
analogous to `C-x 4' for another frame, and that `pop-up-frames' (or its new
equivalent) causes `C-x 4' to use another frame, like `C-x 5'.
You say that this is a feature not commonly used. I think you're probably right
about that. I can think of two reasons, besides a user preference that is based
on adequate knowledge:
1. Insufficient doc. See above. While I think the doc of `pop-up-frames' is
unambiguous, I agree that we could have advertised this feature better. There
is _nothing_ about it in the Emacs manual, yet we bother to document
`ns-pop-up-frames' there! This is (was) a big oversight, IMO.
2. Emacs gotchas, hurdles, and just plain bad behavior wrt frames (as opposed to
windows). A user who tries non-nil `pop-up-frames' either abandons it quickly
when s?he encounters such obstacles, or s?he (uncommonly) digs in and tries to
tweak the code to somehow tame the behavior. IOW, `Emacs Behaving Badly'.
Note that #2 has nothing to do with `pop-up-frames'; it is not the fault of that
option. It is simply that the Emacs UI has never been made to work well with
frames. IMHO.
And it's a vicious circle: because Emacs doesn't play well with frames, few
users bother to use frames (e.g. non-nil `pop-up-frames'), testing of features
wrt frames gets neglected, few improvements get made,... and 'round and 'round
we go.
You are, I would guess, the person the most knowledgable about Emacs windows and
`display-buffer' at this point, yet you yourself have been pretty virgin (I
gather) wrt using Emacs with frames. C'est normal.
> >> You don't know what `special-display-buffer-names' does
> >> unless you read the code of that function.
> >
> > I don't know what makes you think so.
>
> The two weeks I spent with Drew trying to understand it.
I'm not sure what you're referring to. If I recall (I might have forgotten),
you were at first unaware of the possibility of using FUNCTION, which is my use
case. But that's all I remember in terms of any difficulty in understanding.
And that is in the doc string - no need to consult the code.
The doc of `special-display-buffer-names' has always seemed pretty clear to me.
I'm sure that you see and understand more cases than I do, which is perhaps
where the complexity comes in, but it didn't take me long to understand how to
use `special-display-buffer-names' for my use case (FUNCTION), and I never had
to look at its code for that - the doc sufficed.
IOW, the doc suffices for understanding the FUNCTION use case. Perhaps the doc
does not suffice for understanding `special-display-buffer-names' completely. I
can't speak to that. But for Drew's use case, which is what you reference
above, I think the doc suffices and it doesn't take two weeks to understand.
I get the impression that you are pointing to my use of these things as somehow
inherently complex. I think rather it is only that my use case (i.e., FUNCTION)
was unknown to you at first, and it is no doubt not a common use case. But an
uncommon use case does not mean a complex use case.
next prev parent reply other threads:[~2011-08-05 17:45 UTC|newest]
Thread overview: 230+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-16 20:35 display-buffer-alist simplifications Chong Yidong
2011-07-17 1:38 ` Juanma Barranquero
2011-07-17 9:41 ` martin rudalics
2011-07-17 9:40 ` martin rudalics
2011-07-18 15:15 ` Stefan Monnier
2011-07-18 18:52 ` martin rudalics
2011-07-18 20:34 ` Juanma Barranquero
2011-07-18 21:28 ` Drew Adams
2011-08-02 1:36 ` Stefan Monnier
2011-08-02 14:26 ` martin rudalics
2011-08-02 16:41 ` Drew Adams
2011-08-03 16:22 ` martin rudalics
2011-08-03 17:36 ` Drew Adams
2011-08-04 13:59 ` martin rudalics
2011-08-04 15:48 ` Drew Adams
2011-08-02 18:38 ` Stefan Monnier
2011-08-03 16:23 ` martin rudalics
2011-08-04 18:16 ` Stefan Monnier
2011-08-05 16:01 ` martin rudalics
2011-08-05 17:45 ` Drew Adams [this message]
2011-08-06 13:29 ` martin rudalics
2011-08-06 15:33 ` Drew Adams
2011-08-07 8:32 ` martin rudalics
2011-08-05 19:22 ` Stefan Monnier
2011-08-06 13:45 ` martin rudalics
2011-08-08 2:41 ` Stefan Monnier
2011-08-08 4:59 ` Tim Cross
2011-08-08 9:12 ` martin rudalics
2011-08-08 13:42 ` Drew Adams
2011-08-08 19:14 ` Stefan Monnier
2011-08-09 12:55 ` martin rudalics
2011-08-09 18:26 ` Stefan Monnier
2011-08-10 7:10 ` martin rudalics
2011-08-05 16:45 ` Juri Linkov
2011-08-05 19:22 ` Stefan Monnier
2011-08-07 18:17 ` Juri Linkov
2011-08-08 0:54 ` Stefan Monnier
2011-08-08 9:45 ` Juri Linkov
2011-08-08 19:28 ` Stefan Monnier
2011-08-09 9:08 ` Juri Linkov
2011-08-09 18:14 ` Stefan Monnier
2011-08-09 12:56 ` martin rudalics
2011-08-09 18:27 ` Stefan Monnier
2011-08-08 20:51 ` Chong Yidong
2011-08-08 21:34 ` Stefan Monnier
2011-08-09 9:11 ` Juri Linkov
2011-07-23 7:56 ` martin rudalics
2011-07-23 8:26 ` Eli Zaretskii
2011-07-23 18:39 ` martin rudalics
2011-07-23 17:22 ` Chong Yidong
2011-07-23 18:40 ` martin rudalics
2011-07-23 19:26 ` Chong Yidong
2011-07-24 10:07 ` martin rudalics
2011-07-24 13:54 ` Chong Yidong
2011-07-24 17:05 ` martin rudalics
2011-07-24 17:11 ` martin rudalics
2011-07-24 21:32 ` Chong Yidong
2011-07-25 9:18 ` martin rudalics
2011-07-25 9:29 ` Štěpán Němec
2011-07-25 11:41 ` Juanma Barranquero
2011-07-26 1:03 ` Tim Cross
2011-07-25 11:15 ` Juri Linkov
2011-07-26 1:15 ` Stephen J. Turnbull
2011-07-26 5:21 ` David Kastrup
2011-07-26 9:10 ` Stephen J. Turnbull
2011-07-26 10:50 ` David Kastrup
2011-07-26 6:15 ` Juri Linkov
2011-07-31 13:47 ` martin rudalics
2011-08-01 8:03 ` Juri Linkov
2011-08-01 18:57 ` martin rudalics
2011-07-31 13:49 ` martin rudalics
2011-08-01 8:08 ` Juri Linkov
2011-08-01 18:57 ` martin rudalics
2011-07-27 2:43 ` Chong Yidong
2011-07-27 4:59 ` Eli Zaretskii
2011-07-27 8:08 ` Tim Cross
2011-07-27 11:25 ` Juanma Barranquero
2011-07-27 11:27 ` Juanma Barranquero
2011-07-27 11:30 ` Lars Magne Ingebrigtsen
2011-07-27 11:47 ` David Kastrup
2011-07-27 12:04 ` Juanma Barranquero
2011-07-27 12:02 ` Juanma Barranquero
2011-07-27 16:16 ` Eli Zaretskii
2011-07-27 15:52 ` Drew Adams
2011-07-28 15:57 ` Chong Yidong
2011-07-31 13:46 ` martin rudalics
2011-07-27 16:10 ` martin rudalics
2011-07-27 20:27 ` Juri Linkov
2011-07-28 2:12 ` Stephen J. Turnbull
2011-07-28 2:35 ` Juanma Barranquero
2011-07-28 4:46 ` Eli Zaretskii
2011-07-28 7:45 ` Stephen J. Turnbull
2011-07-28 9:09 ` Eli Zaretskii
2011-07-29 1:39 ` Stephen J. Turnbull
2011-07-29 6:51 ` Eli Zaretskii
2011-07-29 7:44 ` Stephen J. Turnbull
2011-07-29 7:58 ` Eli Zaretskii
2011-07-30 16:08 ` Stephen J. Turnbull
2011-07-30 16:28 ` Eli Zaretskii
2011-07-30 16:45 ` David Kastrup
2011-07-30 17:12 ` Eli Zaretskii
2011-07-31 9:07 ` Stephen J. Turnbull
2011-07-29 11:09 ` Juanma Barranquero
2011-07-28 16:41 ` Chong Yidong
2011-07-29 11:04 ` Juri Linkov
2011-07-31 13:48 ` martin rudalics
2011-08-01 8:12 ` Juri Linkov
2011-07-31 13:48 ` martin rudalics
2011-08-01 8:19 ` Juri Linkov
2011-08-01 18:57 ` martin rudalics
2011-07-31 13:48 ` martin rudalics
2011-08-01 8:20 ` Juri Linkov
2011-08-01 17:13 ` Chong Yidong
2011-08-01 23:34 ` Andy Moreton
2011-08-02 14:24 ` martin rudalics
2011-08-02 16:41 ` Stefan Monnier
2011-08-03 16:22 ` martin rudalics
2011-08-03 16:26 ` Nix
2011-08-03 16:40 ` martin rudalics
2011-08-04 2:27 ` Stefan Monnier
2011-08-04 14:00 ` martin rudalics
2011-08-04 20:07 ` Stefan Monnier
2011-08-03 20:29 ` Chong Yidong
2011-08-04 13:59 ` martin rudalics
2011-08-05 17:48 ` Chong Yidong
2011-08-06 13:30 ` martin rudalics
2011-08-08 1:27 ` Stefan Monnier
2011-08-08 9:10 ` martin rudalics
2011-08-08 9:49 ` Andreas Röhler
2011-08-08 9:52 ` Juri Linkov
2011-08-08 12:26 ` martin rudalics
2011-08-08 18:51 ` Stefan Monnier
2011-08-09 12:55 ` martin rudalics
2011-08-09 18:19 ` Stefan Monnier
2011-08-10 7:10 ` martin rudalics
2011-08-10 13:01 ` Stefan Monnier
2011-08-11 9:35 ` martin rudalics
2011-08-11 13:50 ` Stefan Monnier
2011-08-12 14:05 ` martin rudalics
2011-08-12 18:03 ` Chong Yidong
2011-08-13 2:29 ` Stefan Monnier
2011-08-13 13:44 ` martin rudalics
2011-08-13 14:32 ` Stefan Monnier
2011-08-16 9:33 ` Juri Linkov
2011-08-16 15:37 ` martin rudalics
2011-08-17 9:27 ` Juri Linkov
2011-08-18 6:57 ` martin rudalics
2011-08-13 13:44 ` martin rudalics
2011-08-13 2:29 ` Stefan Monnier
2011-08-13 13:44 ` martin rudalics
2011-08-13 14:30 ` Stefan Monnier
2011-08-28 8:05 ` martin rudalics
2011-08-29 9:34 ` martin rudalics
2011-08-29 15:17 ` Stefan Monnier
2011-08-29 15:07 ` Stefan Monnier
2011-08-29 19:04 ` martin rudalics
2011-08-29 19:45 ` Juri Linkov
2011-08-30 4:10 ` Stefan Monnier
2011-08-31 1:43 ` Chong Yidong
2011-08-31 2:07 ` Drew Adams
2011-08-31 3:01 ` Chong Yidong
2011-08-31 9:33 ` martin rudalics
2011-08-31 9:57 ` Juri Linkov
2011-08-31 11:46 ` martin rudalics
2011-08-31 15:42 ` Chong Yidong
2011-08-31 16:59 ` Juri Linkov
2011-09-01 2:06 ` Chong Yidong
2011-09-02 1:33 ` Stefan Monnier
2011-09-02 14:54 ` Chong Yidong
[not found] ` <jwvbouyxu1j.fsf-monnier+emacs@gnu.org>
[not found] ` <87sjo9hfar.fsf@stupidchicken.com>
[not found] ` <jwvy5y1a6n5.fsf-monnier+emacs@gnu.org>
[not found] ` <874o0p8emk.fsf@stupidchicken.com>
[not found] ` <jwv8vq1t8u8.fsf-monnier+emacs@gnu.org>
[not found] ` <87ipp4webw.fsf@stupidchicken.com>
[not found] ` <jwvvct3q0t8.fsf-monnier+emacs@gnu.org>
[not found] ` <87bouvniij.fsf@stupidchicken.com>
[not found] ` <jwv7h5i91qh.fsf-monnier+emacs@gnu.org>
[not found] ` <87aaaeikr6.fsf@stupidchicken.com>
[not found] ` <jwvsjo6v5l2.fsf-monnier+emacs@gnu.org>
[not found] ` <878vpx3g4d.fsf@stupidchicken.com>
[not found] ` <jwvfwk5h11g.fsf-monnier+emacs@gnu.org>
[not found] ` <87pqj9qqhp.fsf@stupidchicken.com>
[not found] ` <jwvmxedfbzo.fsf-monnier+emacs@gnu.org>
2011-09-11 20:40 ` display-buffer-overriding-action Chong Yidong
2011-09-12 0:04 ` display-buffer-overriding-action Juanma Barranquero
2011-09-13 0:55 ` display-buffer-overriding-action Stefan Monnier
2011-09-13 2:39 ` display-buffer-overriding-action Chong Yidong
2011-09-13 17:59 ` display-buffer-overriding-action Stefan Monnier
2011-09-13 19:01 ` display-buffer-overriding-action Chong Yidong
2011-09-13 19:28 ` display-buffer-overriding-action Chong Yidong
2011-09-13 20:48 ` display-buffer-overriding-action Stefan Monnier
2011-09-13 22:40 ` display-buffer-overriding-action Chong Yidong
2011-09-14 0:53 ` display-buffer-overriding-action Stefan Monnier
2011-09-14 2:13 ` display-buffer-overriding-action Chong Yidong
2011-09-14 18:33 ` display-buffer-overriding-action Stefan Monnier
2011-09-14 22:36 ` display-buffer-overriding-action Chong Yidong
2011-09-15 0:04 ` display-buffer-overriding-action Stefan Monnier
2011-08-31 15:56 ` display-buffer-alist simplifications Chong Yidong
2011-09-01 0:25 ` martin rudalics
2011-09-01 2:04 ` Chong Yidong
2011-09-01 15:35 ` martin rudalics
2011-09-01 16:07 ` Chong Yidong
2011-08-31 13:33 ` Drew Adams
2011-09-01 1:35 ` Stephen J. Turnbull
2011-08-09 4:41 ` John Yates
2011-08-08 18:43 ` Stefan Monnier
2011-08-09 0:47 ` Stephen J. Turnbull
2011-08-09 12:54 ` martin rudalics
2011-08-09 18:12 ` Stefan Monnier
2011-08-10 7:09 ` martin rudalics
2011-08-10 10:42 ` Štěpán Němec
2011-08-10 12:50 ` Stefan Monnier
2011-08-10 14:26 ` Drew Adams
2011-08-10 9:17 ` Juri Linkov
2011-08-10 13:11 ` Stefan Monnier
2011-08-08 9:49 ` Juri Linkov
2011-08-08 19:31 ` Stefan Monnier
2011-08-07 18:12 ` Juri Linkov
2011-08-02 18:01 ` Juri Linkov
2011-08-03 16:22 ` martin rudalics
2011-08-01 18:57 ` martin rudalics
2011-08-01 16:16 ` Chong Yidong
2011-08-01 18:57 ` martin rudalics
2011-08-02 2:36 ` Chong Yidong
2011-08-03 6:39 ` Stephen J. Turnbull
2011-07-23 19:42 ` Chong Yidong
2011-07-24 10:07 ` martin rudalics
-- strict thread matches above, loose matches on Subject: below --
2011-07-24 21:44 grischka
2011-07-25 9:18 ` martin rudalics
2011-07-25 11:22 ` grischka
2011-07-26 6:18 ` Juri Linkov
2011-07-27 13:07 ` grischka
2011-07-30 8:40 ` Juri Linkov
2011-07-31 15:48 ` grischka
2011-08-01 8:23 ` Juri Linkov
2011-08-04 19:59 grischka
2011-08-04 21:01 ` Stefan Monnier
2011-08-05 20:33 ` grischka
2011-08-07 18:22 ` Juri Linkov
2011-08-08 0:59 ` Stefan Monnier
2011-08-08 9:07 ` martin rudalics
2011-08-08 14:01 grischka
2011-08-10 16:31 grischka
2011-08-10 17:06 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=B7BA9390546046959258B97F116058ED@us.oracle.com \
--to=drew.adams@oracle.com \
--cc=cyd@stupidchicken.com \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=rudalics@gmx.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).