unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* list-buffers behavior customization
@ 2016-05-05 20:47 Carlos Konstanski
  2016-05-05 22:46 ` Michael Heerdegen
  2016-05-07  0:55 ` Bernardo
  0 siblings, 2 replies; 7+ messages in thread
From: Carlos Konstanski @ 2016-05-05 20:47 UTC (permalink / raw)
  To: help-gnu-emacs

I quite often have 3 or 4 emacs frames open. Whenever I do a
list-buffers, it opens in whatever frame it appeared last. This is
usually not what I want. I want it to open in the frame that is
currently in focus.

The implementation looks like the following:

(defun list-buffers-noselect (&optional files-only buffer-list)
  (let ((old-buffer (current-buffer))
	(buffer (get-buffer-create "*Buffer List*")))
    (with-current-buffer buffer
      (Buffer-menu-mode)
      (setq Buffer-menu-files-only
	    (and files-only (>= (prefix-numeric-value files-only) 0)))
      (list-buffers--refresh buffer-list old-buffer)
      (tabulated-list-print))
    buffer))

The sexp (get-buffer-create "*Buffer List*") is where this behavior is
coming from.

Before I try to find some way to hack this function so that it deletes
the pre-existing buffer first, is there a hook where I can do this?

Thank you,
Carlos Konstanski



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: list-buffers behavior customization
  2016-05-05 20:47 list-buffers behavior customization Carlos Konstanski
@ 2016-05-05 22:46 ` Michael Heerdegen
  2016-05-06 13:03   ` Carlos Konstanski
  2016-05-07  0:55 ` Bernardo
  1 sibling, 1 reply; 7+ messages in thread
From: Michael Heerdegen @ 2016-05-05 22:46 UTC (permalink / raw)
  To: help-gnu-emacs

Carlos Konstanski <ckonstanski@pippiandcarlos.com> writes:

> I quite often have 3 or 4 emacs frames open. Whenever I do a
> list-buffers, it opens in whatever frame it appeared last. This is
> usually not what I want. I want it to open in the frame that is
> currently in focus.
>
> [...]
> The sexp (get-buffer-create "*Buffer List*") is where this behavior is
> coming from.

`get-buffer-create' may return an existing buffer of that name, but
nothing more: it doesn't decide where to display it etc.  That is done
by `display-buffer'.  So I think you just want to customize
`display-buffer-alist'?


Regards,

Michael.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: list-buffers behavior customization
  2016-05-05 22:46 ` Michael Heerdegen
@ 2016-05-06 13:03   ` Carlos Konstanski
  2016-05-06 19:18     ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Carlos Konstanski @ 2016-05-06 13:03 UTC (permalink / raw)
  To: help-gnu-emacs

Am 05.05.2016 um 16:46 schrieb Michael Heerdegen:
> Carlos Konstanski <ckonstanski@pippiandcarlos.com> writes:
> 
>> I quite often have 3 or 4 emacs frames open. Whenever I do a
>> list-buffers, it opens in whatever frame it appeared last. This is
>> usually not what I want. I want it to open in the frame that is
>> currently in focus.
>>
>> [...]
>> The sexp (get-buffer-create "*Buffer List*") is where this behavior is
>> coming from.
> 
> `get-buffer-create' may return an existing buffer of that name, but
> nothing more: it doesn't decide where to display it etc.  That is done
> by `display-buffer'.  So I think you just want to customize
> `display-buffer-alist'?
> 
> 
> Regards,
> 
> Michael.

Thanks! This solution works:


 '(display-buffer-alist
   (quote
    (("*Buffer*" display-buffer-same-window
      (allow-no-window . t)))))

Carlos



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: list-buffers behavior customization
  2016-05-06 13:03   ` Carlos Konstanski
@ 2016-05-06 19:18     ` Stefan Monnier
  2016-05-06 19:29       ` Carlos Konstanski
  0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2016-05-06 19:18 UTC (permalink / raw)
  To: help-gnu-emacs

> Thanks! This solution works:

>  '(display-buffer-alist
>    (quote
>     (("*Buffer*" display-buffer-same-window
>       (allow-no-window . t)))))

I assume you mean

    (setq display-buffer-alist
          '(("*Buffer*" display-buffer-same-window
            (allow-no-window . t))))

because the code you quoted above does nothing at all in itself (it's
just a constant list, not a command/instruction).


        Stefan




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: list-buffers behavior customization
  2016-05-06 19:18     ` Stefan Monnier
@ 2016-05-06 19:29       ` Carlos Konstanski
  2016-05-06 19:36         ` Stefan Monnier
  0 siblings, 1 reply; 7+ messages in thread
From: Carlos Konstanski @ 2016-05-06 19:29 UTC (permalink / raw)
  To: help-gnu-emacs

Am 06.05.2016 um 13:18 schrieb Stefan Monnier:
>> Thanks! This solution works:
> 
>>  '(display-buffer-alist
>>    (quote
>>     (("*Buffer*" display-buffer-same-window
>>       (allow-no-window . t)))))
> 
> I assume you mean
> 
>     (setq display-buffer-alist
>           '(("*Buffer*" display-buffer-same-window
>             (allow-no-window . t))))
> 
> because the code you quoted above does nothing at all in itself (it's
> just a constant list, not a command/instruction).
> 
> 
>         Stefan

I copied and pasted from .emacs after using the customize-variable
doohickey within emacs. This felt like the right way to customize this
variable.

Carlos



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: list-buffers behavior customization
  2016-05-06 19:29       ` Carlos Konstanski
@ 2016-05-06 19:36         ` Stefan Monnier
  0 siblings, 0 replies; 7+ messages in thread
From: Stefan Monnier @ 2016-05-06 19:36 UTC (permalink / raw)
  To: help-gnu-emacs

> I copied and pasted from .emacs after using the customize-variable
> doohickey within Emacs.

So you took it out of context.  That context says:

 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.

If you use customize-variable, then the better way is to tell the other
user to do the same ;-)


        Stefan




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: list-buffers behavior customization
  2016-05-05 20:47 list-buffers behavior customization Carlos Konstanski
  2016-05-05 22:46 ` Michael Heerdegen
@ 2016-05-07  0:55 ` Bernardo
  1 sibling, 0 replies; 7+ messages in thread
From: Bernardo @ 2016-05-07  0:55 UTC (permalink / raw)
  To: help-gnu-emacs


> I quite often have 3 or 4 emacs frames open. Whenever I do a
> list-buffers, it opens in whatever frame it appeared last. This is
> usually not what I want. I want it to open in the frame that is
> currently in focus.

did you try adding "*Buffer List*" to the same-window-buffer-names ?




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-05-07  0:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-05 20:47 list-buffers behavior customization Carlos Konstanski
2016-05-05 22:46 ` Michael Heerdegen
2016-05-06 13:03   ` Carlos Konstanski
2016-05-06 19:18     ` Stefan Monnier
2016-05-06 19:29       ` Carlos Konstanski
2016-05-06 19:36         ` Stefan Monnier
2016-05-07  0:55 ` Bernardo

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).