* Should delete-window switch to next buffer when there is only one window? @ 2014-01-14 22:30 Ernest Adrogué 2014-01-14 23:57 ` Drew Adams 2014-01-15 13:31 ` Stefan Monnier 0 siblings, 2 replies; 13+ messages in thread From: Ernest Adrogué @ 2014-01-14 22:30 UTC (permalink / raw) To: help-gnu-emacs Hi. Currently if you attempt to delete an only window, the following message shows up Attempt to delete minibuffer or sole ordinary window I think that perhaps it would be better if it switched buffers instead. What do you think? ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: Should delete-window switch to next buffer when there is only one window? 2014-01-14 22:30 Should delete-window switch to next buffer when there is only one window? Ernest Adrogué @ 2014-01-14 23:57 ` Drew Adams 2014-01-15 8:45 ` Marcin Borkowski 2014-01-15 13:31 ` Stefan Monnier 1 sibling, 1 reply; 13+ messages in thread From: Drew Adams @ 2014-01-14 23:57 UTC (permalink / raw) To: Ernest Adrogué, help-gnu-emacs > Currently if you attempt to delete an only window, the following > message shows up: "Attempt to delete minibuffer or sole ordinary > window" > > I think that perhaps it would be better if it switched buffers > instead. What do you think? No. A user who hits `C-x 0' is asking to delete the window. S?he is not asking to switch to another buffer or buy a beer. These are very different actions, with different purposes. Sure, you could combine them, but they don't seem like a useful combination to me. You either want to switch to a different buffer or you do not. If you do, then you want to do that in any case, not just when the window is alone in its frame. A user who wants to delete the selected window wants to do just that. So the error message is appropriate, to let the user know that it is the sole window in its frame. Now you might indeed look for something much closer to deleting the window, when it is alone in its frame. If you want to get rid of it in that case too, it's likely that you really want to get rid of the frame altogether, including its window. That is likely to be the case if you, like me, use lots of frames, including for things like pop-up windows that you do want to just remove. Whereas it does not make sense to try to remove the only window shown in a frame (hence the error message), it does make sense to remove a frame. For that, library `frame-cmds.el' (note the name - it is especially for people who like to use frames) redefines command `delete-window' to invoke `delete-frame' when the window is the only one in its frame. (Yes, this behavior is maybe not for everyone. Using the library is of course optional. But IMO, this is the behavior that `delete-window' should have, which is why I redefined it instead of just remapping its keys for interactive use.) And I in fact suggest that users of `frame-cmds.el' remap any keys bound to `delete-window' to command `delete-windows-for' instead (also defined in `frame-cmds.el'). That command is just like the redefined `delete-window', except that with a prefix arg it deletes all windows showing the buffer (anywhere). ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-14 23:57 ` Drew Adams @ 2014-01-15 8:45 ` Marcin Borkowski 0 siblings, 0 replies; 13+ messages in thread From: Marcin Borkowski @ 2014-01-15 8:45 UTC (permalink / raw) To: help-gnu-emacs Dnia 2014-01-14, o godz. 15:57:45 Drew Adams <drew.adams@oracle.com> napisał(a): > > Currently if you attempt to delete an only window, the following > > message shows up: "Attempt to delete minibuffer or sole ordinary > > window" > > > > I think that perhaps it would be better if it switched buffers > > instead. What do you think? > > No. A user who hits `C-x 0' is asking to delete the window. > S?he is not asking to switch to another buffer or buy a beer. > > These are very different actions, with different purposes. > Sure, you could combine them, but they don't seem like a useful > combination to me. You either want to switch to a different > buffer or you do not. If you do, then you want to do that in > any case, not just when the window is alone in its frame. > > A user who wants to delete the selected window wants to do just > that. So the error message is appropriate, to let the user know > that it is the sole window in its frame. > > Now you might indeed look for something much closer to deleting > the window, when it is alone in its frame. If you want to get > rid of it in that case too, it's likely that you really want to > get rid of the frame altogether, including its window. > > That is likely to be the case if you, like me, use lots of frames, > including for things like pop-up windows that you do want to just > remove. Whereas it does not make sense to try to remove the only > window shown in a frame (hence the error message), it does make > sense to remove a frame. > > For that, library `frame-cmds.el' (note the name - it is > especially for people who like to use frames) redefines command > `delete-window' to invoke `delete-frame' when the window is the > only one in its frame. And when it's the *only* window in the *only* frame? ;) (BTW: I agree that defining *another* command and remapping C-x 0 to it is the best option here.) -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Adam Mickiewicz University ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-14 22:30 Should delete-window switch to next buffer when there is only one window? Ernest Adrogué 2014-01-14 23:57 ` Drew Adams @ 2014-01-15 13:31 ` Stefan Monnier 1 sibling, 0 replies; 13+ messages in thread From: Stefan Monnier @ 2014-01-15 13:31 UTC (permalink / raw) To: help-gnu-emacs > Currently if you attempt to delete an only window, the following message > shows up > Attempt to delete minibuffer or sole ordinary window > I think that perhaps it would be better if it switched buffers instead. > What do you think? While it might make a lot of sense in the way you use delete-window, it does not make sense in general (e.g. it makes no sense in the way I use delete-window, for example). For me, when there's only one window left, delete-window should delete the window's frame, and if it's the last frame, then it should kill Emacs. But I'm not sure this behavior would make sense for all users either. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <mailman.11954.1389738686.10748.help-gnu-emacs@gnu.org>]
* Re: Should delete-window switch to next buffer when there is only one window? [not found] <mailman.11954.1389738686.10748.help-gnu-emacs@gnu.org> @ 2014-01-14 22:40 ` Emanuel Berg 2014-01-14 22:43 ` Emanuel Berg 2014-01-14 23:16 ` Peter 1 sibling, 1 reply; 13+ messages in thread From: Emanuel Berg @ 2014-01-14 22:40 UTC (permalink / raw) To: help-gnu-emacs Ernest Adrogué <nfdisco@gmail.com> writes: > Currently if you attempt to delete an only window, > the following message shows up > > Attempt to delete minibuffer or sole ordinary window > > I think that perhaps it would be better if it > switched buffers instead. What do you think? I haven't thought about that, but this is the kind of hacking I like, when Emacs figures out what you mean, based on something that isn't part of the command itself. Try this: (defun delete-window-or-switch () (interactive) (if (= 1 (count-windows)) (switch-buffer) (delete-window) )) -- underground experts united: http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-14 22:40 ` Emanuel Berg @ 2014-01-14 22:43 ` Emanuel Berg 0 siblings, 0 replies; 13+ messages in thread From: Emanuel Berg @ 2014-01-14 22:43 UTC (permalink / raw) To: help-gnu-emacs Emanuel Berg <embe8573@student.uu.se> writes: > Try this: > > (defun delete-window-or-switch () (interactive) (if (= > 1 (count-windows)) (switch-buffer) (delete-window) )) Oh, "switch-buffer" is mine: try (switch-to-buffer nil) instead. -- underground experts united: http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? [not found] <mailman.11954.1389738686.10748.help-gnu-emacs@gnu.org> 2014-01-14 22:40 ` Emanuel Berg @ 2014-01-14 23:16 ` Peter 2014-01-14 23:32 ` Emanuel Berg ` (2 more replies) 1 sibling, 3 replies; 13+ messages in thread From: Peter @ 2014-01-14 23:16 UTC (permalink / raw) To: help-gnu-emacs On Wednesday, January 15, 2014 9:30:57 AM UTC+11, Ernest Adrogué wrote: > Hi. > > > > Currently if you attempt to delete an only window, the following message > > shows up > > > > Attempt to delete minibuffer or sole ordinary window > > > > I think that perhaps it would be better if it switched buffers instead. > > What do you think? No, I think it is doing the right thing. It doesn't make any sense for YOUR code to delete the only window that exists. If it just switched buffers (to what? what rule should apply in this case? A random buffer selection?) then it isn't doing what you requested - which is to delete the window. I think a bit more thought on your side should be applied rather than suggesting that Emacs behaviour change to suit you. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-14 23:16 ` Peter @ 2014-01-14 23:32 ` Emanuel Berg 2014-01-15 8:39 ` Marcin Borkowski 2014-01-14 23:33 ` Drew Adams 2014-01-15 1:19 ` Ernest Adrogué 2 siblings, 1 reply; 13+ messages in thread From: Emanuel Berg @ 2014-01-14 23:32 UTC (permalink / raw) To: help-gnu-emacs Peter <peter.milliken@gmail.com> writes: > No, I think it is doing the right thing. It doesn't > make any sense for YOUR code to delete the only > window that exists. If it just switched buffers (to > what? what rule should apply in this case? A random > buffer selection?) then it isn't doing what you > requested - which is to delete the window. That's true in a schoolbook sense, but: whenever there is an association that something should do something, and then that something doesn't happen, this association is often sane, at least if it appears time and again. You should trust your mind and instinct more than Emacs! The least you can do is pause and think about it. > I think a bit more thought on your side should be > applied rather than suggesting that Emacs behaviour > change to suit you. Ha ha ha, is this in the Lisp manual as well?! On the contrary, it is much better to change Emacs than to change your gut feeling, at least if the gut feeling makes sense, in what case, why on earth change it? But remember the other side of the story. If the gut feeling doesn't make sense, you can use Emacs to get rid of it by *not* configuring Emacs. That way, you force yourself to form a new pattern in you brain/body/wherever. There are so many things you can't change in life but as for your brain, body, and editor, you at least have a fair shot. Don't waste it. -- underground experts united: http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-14 23:32 ` Emanuel Berg @ 2014-01-15 8:39 ` Marcin Borkowski 0 siblings, 0 replies; 13+ messages in thread From: Marcin Borkowski @ 2014-01-15 8:39 UTC (permalink / raw) To: help-gnu-emacs Dnia 2014-01-15, o godz. 00:32:03 Emanuel Berg <embe8573@student.uu.se> napisał(a): > There are so many things you can't change in life but > as for your brain, body, and editor, you at least have > a fair shot. I'm stealing this for a signature quote. -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Adam Mickiewicz University ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: Should delete-window switch to next buffer when there is only one window? 2014-01-14 23:16 ` Peter 2014-01-14 23:32 ` Emanuel Berg @ 2014-01-14 23:33 ` Drew Adams 2014-01-15 1:19 ` Ernest Adrogué 2 siblings, 0 replies; 13+ messages in thread From: Drew Adams @ 2014-01-14 23:33 UTC (permalink / raw) To: Peter, help-gnu-emacs > No, I think it is doing the right thing. It doesn't make any sense > for YOUR code to delete the only window that exists. If it just > switched buffers (to what? what rule should apply in this case? A > random buffer selection?) then it isn't doing what you requested - > which is to delete the window. > > I think a bit more thought on your side should be applied rather > than suggesting that Emacs behaviour change to suit you. Put it another way, perhaps: Define your own command (i.e., with a different name), and remap `delete-window' to your command, for (your own) interactive use. Two points are important here: 1. `delete-window' is an Emacs function used in many places. It is not just a command, and it is not invoked only interactively (e.g., via `C-x 0'). 2. Try it out on yourself before suggesting that Emacs adopt it. Use it for a while (months? years?). These are two things to keep in mind whenever you have an idea about changing the default behavior of some command. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-14 23:16 ` Peter 2014-01-14 23:32 ` Emanuel Berg 2014-01-14 23:33 ` Drew Adams @ 2014-01-15 1:19 ` Ernest Adrogué 2014-01-15 5:12 ` Thien-Thi Nguyen [not found] ` <mailman.11970.1389762517.10748.help-gnu-emacs@gnu.org> 2 siblings, 2 replies; 13+ messages in thread From: Ernest Adrogué @ 2014-01-15 1:19 UTC (permalink / raw) To: help-gnu-emacs 2014-01-14, 15:16 (-0800); Peter escriu: > No, I think it is doing the right thing. It doesn't make any sense for > YOUR code to delete the only window that exists. If it just switched > buffers (to what? what rule should apply in this case? A random buffer > selection?) then it isn't doing what you requested - which is to delete > the window. I was thinking from the user point of view. In my mental model (which maybe doesn't reflect how Emacs really works, but nonetheless) I think of windows as being stacked, and when I do C-x 0 to me is like saying send the top window to the bottom of the stack. In this context, it would make sense for C-x 0 to switch to a different buffer when there is only one window in the frame. > I think a bit more thought on your side should be applied rather than > suggesting that Emacs behaviour change to suit you. Ok, I will try to think harder before I make another suggestion. Sorry for wasting your time! ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Should delete-window switch to next buffer when there is only one window? 2014-01-15 1:19 ` Ernest Adrogué @ 2014-01-15 5:12 ` Thien-Thi Nguyen [not found] ` <mailman.11970.1389762517.10748.help-gnu-emacs@gnu.org> 1 sibling, 0 replies; 13+ messages in thread From: Thien-Thi Nguyen @ 2014-01-15 5:12 UTC (permalink / raw) To: help-gnu-emacs [-- Attachment #1: Type: text/plain, Size: 1220 bytes --] () Ernest Adrogué <nfdisco@gmail.com> () Wed, 15 Jan 2014 02:19:42 +0100 I was thinking from the user point of view. It's good that you say this! In my mental model (which maybe doesn't reflect how Emacs really works, but nonetheless) I think of windows as being stacked, and when I do C-x 0 to me is like saying send the top window to the bottom of the stack. In this context, it would make sense for C-x 0 to switch to a different buffer when there is only one window in the frame. (defun begone! () (interactive) (condition-case nil (delete-window) (error (bury-buffer)))) (global-set-key "\C-x0" 'begone!) Ok, I will try to think harder before I make another suggestion. Sorry for wasting your time! No worries. I think from the original post we would have arrived more easily at the above code (or something like it) if there had been: s/instead/in that case/ Insert appropriate Gandalf quote, here. :-D -- Thien-Thi Nguyen GPG key: 4C807502 (if you're human and you know it) read my lisp: (responsep (questions 'technical) (not (via 'mailing-list))) => nil [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <mailman.11970.1389762517.10748.help-gnu-emacs@gnu.org>]
* Re: Should delete-window switch to next buffer when there is only one window? [not found] ` <mailman.11970.1389762517.10748.help-gnu-emacs@gnu.org> @ 2014-01-15 21:13 ` Emanuel Berg 0 siblings, 0 replies; 13+ messages in thread From: Emanuel Berg @ 2014-01-15 21:13 UTC (permalink / raw) To: help-gnu-emacs Thien-Thi Nguyen <ttn@gnu.org> writes: > (defun begone! () (interactive) (condition-case nil > (delete-window) (error (bury-buffer)))) > (global-set-key "\C-x0" 'begone!) That's better Elisp than mine, so let me be a sour loser by saying that newcomers should note the "unmodular" one-namespace nature of Emacs, which explains the elaborate use of prefixes and descriptive function names... ;) -- underground experts united: http://user.it.uu.se/~embe8573 ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2014-01-15 21:13 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-01-14 22:30 Should delete-window switch to next buffer when there is only one window? Ernest Adrogué 2014-01-14 23:57 ` Drew Adams 2014-01-15 8:45 ` Marcin Borkowski 2014-01-15 13:31 ` Stefan Monnier [not found] <mailman.11954.1389738686.10748.help-gnu-emacs@gnu.org> 2014-01-14 22:40 ` Emanuel Berg 2014-01-14 22:43 ` Emanuel Berg 2014-01-14 23:16 ` Peter 2014-01-14 23:32 ` Emanuel Berg 2014-01-15 8:39 ` Marcin Borkowski 2014-01-14 23:33 ` Drew Adams 2014-01-15 1:19 ` Ernest Adrogué 2014-01-15 5:12 ` Thien-Thi Nguyen [not found] ` <mailman.11970.1389762517.10748.help-gnu-emacs@gnu.org> 2014-01-15 21:13 ` Emanuel Berg
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).