From: Ergus <spacibba@aol.com>
To: Drew Adams <drew.adams@oracle.com>
Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: Re: [External] : Custom for quit-window?
Date: Sat, 8 Jan 2022 19:23:41 +0100 [thread overview]
Message-ID: <20220108182341.4asnh7b7ukiyzxpj@Ergus> (raw)
In-Reply-To: <SJ0PR10MB54884E94909EE9A91DA52BF5F34D9@SJ0PR10MB5488.namprd10.prod.outlook.com>
On Fri, Jan 07, 2022 at 06:11:49PM +0000, Drew Adams wrote:
>> Is it there a "simple method" to make quit-window to kill the buffer
>> without needing a prefix?
>>
>> When working with 10 files and using dired, help and some other
>> special-mode derived buffers it becomes awkward to have 10 working files
>> and 15 random noisy buffers that makes "C-x <right>"" navigation
>> useless and "C-x b" harder to read.
>>
>> Such simple custom option I am pretty sure has been deserved by someone
>> before, and a simple approach may be to remap quit-window to something
>> like:
>>
>> (defun my/quit-window (&optional kill window)
>> (interactive "P")
>> (quit-window t window))
>>
>> But I am wondering if it is so simple why isn't there an option for
>> that. Is there any very bad side effect on this?
>>
>> Another alternative is to hide/filter buffers using a regex or so, but
>> IMHO it is like hiding the real issue under the carpet.
Hi Drew:
>
>I use this:
>
>(defun quit-window-delete (&optional kill window)
> "Quit WINDOW, deleting it, and bury its buffer.
>WINDOW must be a live window and defaults to the selected one.
>With prefix argument KILL non-nil, kill the buffer instead of
>burying it.
>
>This is similar to the version of `quit-window' that Emacs had before
>the introduction of `quit-restore-window'. It ignores the information
>stored in WINDOW's `quit-restore' window parameter.
>
>It deletes the WINDOW more often, rather than switching to another
>buffer in it. If WINDOW is alone in its frame then the frame is
>deleted or iconified, according to option `frame-auto-hide-function'."
> (interactive "P")
> (set-window-parameter
> window 'quit-restore `(frame frame nil ,(current-buffer)))
> (quit-restore-window window (if kill 'kill 'bury)))
>
>And I do this:
>
>(global-set-key [remap quit-window] ' quit-window-delete)
>
I just tried your suggestion and I don't get any difference... I saw
that you had a package called window+ that is supposed to do more or
less what I want, is it right? So actually kill the buffer like with
"C-u q".
But I am still not sure why this is not an currently an option and the
implementation not simpler, or if there are some "bad" side effects in
the implementation suggested in my initial email.
I mean, to make it less intrusive and only call kill when called
interactively (until I am sure there are not any undesired side effect)
is this fine?
(defcustom quit-window-kills-interactive nil
"Some docstring...")
(defun quit-window (&optional kill window)
(interactive "P")
(with-current-buffer (window-buffer (window-normalize-window window))
(run-hooks 'quit-window-hook))
(quit-restore-window window (if (or kill
(and quit-window-kills-interactive
(called-interactively-p 'any)))
'kill
'bury)))
Thanks in advance,
Ergus
next prev parent reply other threads:[~2022-01-08 18:23 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20220107180521.7zgkfxro7c7tkdi7.ref@Ergus>
2022-01-07 18:05 ` Custom for quit-window? Ergus
2022-01-07 18:11 ` [External] : " Drew Adams
2022-01-08 18:23 ` Ergus [this message]
2022-01-09 0:26 ` Drew Adams
2022-01-07 18:20 ` John W Higgins
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220108182341.4asnh7b7ukiyzxpj@Ergus \
--to=spacibba@aol.com \
--cc=drew.adams@oracle.com \
--cc=help-gnu-emacs@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.