Emacs - Open buffer list without replacing another buffer

时光毁灭记忆、已成空白 提交于 2019-12-13 19:14:54

问题


I have one frame, one window. I use Cx 3, I now have two windows.

I use Cx Cb in order to see the list of buffers, however it opens it in another window but doesn't put the focus on it. It is even more annoying if I had opened a buffer on the 2nd window.

I would prefer to either open the buffer list in the window which currently has the focus, or temporarily change the focus to the buffer list.


回答1:


First of all I want to start by saying that the ibuffer function does similary to what you want and does so in the current window, its definitely worth checking out.

Now onto your actual question. C-x C-b by default calls the function list-buffers. If you search for that command using C-h f it will show you the documentation, from there you can view the source code for the function by clicking on the underlined text that says buff-menu.el.

Now we can view the source of the list-buffers, the first function called is display-buffer. That sounds promising. We can now use C-h f once again to search for the display-buffer command. Reading though this documentation we see that the variable display-buffer-alist dictates how the display-buffer and in turn how list-buffers works. We can then see that by adding ("*Buffer List*" . display-buffer-same-window) to display-buffer-alist you will get the desired result.

All in all you simply need to put (add-to-list 'display-buffer-alist '("*Buffer List*" . display-buffer-same-window)) in your init file for your changes to take place.




回答2:


Please just try one of these:

  1. open the buffer list who currently has the focus:
(defun my:list-buffers (&optional arg)
  (interactive "P")
  (display-buffer (list-buffers-no-select arg) '(display-buffer-same-window)))
  1. change the focus
(defun my:list-buffers2 (&optional arg)
  (interactive "P")
  (select-window (list-buffers arg)))


来源:https://stackoverflow.com/questions/36403606/emacs-open-buffer-list-without-replacing-another-buffer

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!