14

How can I make it so that when I press C-xC-b to access the Buffer List that that buffer automatically takes focus instead of having to switch to it manually with C-xo? I can't find a variable that customizes this.

1
  • 4
    This is purely editorial, but I have never understood how having the list come up un-focused is supposed to be useful. So yeah, good question. Commented Oct 8, 2014 at 3:12

3 Answers 3

11

You can replace the command list-buffers which is run with C-x C-b to a function that does what you want. In this case buffer-menu-other-window opens the buffers list in another window with focus. Adding the following snippet to your init file should remap C-x C-b to the new function.

 (define-key global-map [remap list-buffers] 'buffer-menu-other-window) 

Here global-map represents the keymap where C-x C-b is bound to a command, list-buffers the original command and buffer-menu-other-window the new command.

3
  • 4
    Or buffer-menu, if you don't want to use another window. Commented Oct 8, 2014 at 2:07
  • Kudos for using remapping over global-set-key. Commented Jun 22, 2018 at 21:47
  • @metaturso You can remap with global-set-key as well: (global-set-key [remap list-buffers] #'buffer-menu-other-window). global-set-key is merely a thin wrapper around define-key. Commented Jun 23, 2018 at 10:58
8

An alternative is to switch to ibuffer, which does not share this problem.

ibuffer is part of GNU Emacs, so on recent versions of Emacs you should just need to add

(global-set-key (kbd "C-x C-b") 'ibuffer) 

to your init file.

2
  • 1
    This is what I do as well, but the wording of your answer makes it seem like it is more than just a matter of preference. Commented Oct 8, 2014 at 14:15
  • It certainly does. Commented Oct 9, 2014 at 14:33
0

Here's what I use:

(add-to-list 'display-buffer-alist '((derived-mode . Buffer-menu-mode) (display-buffer-reuse-mode-window display-buffer-same-window))) 

As mentioned by others, switching to ibuffer is also an option.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.