[英]Emacs - Open buffer list without replacing another buffer
我有一个框架,一个窗口。 我使用Cx 3,我现在有两个窗口。
我使用Cx Cb来查看缓冲区列表,但是它会在另一个窗口中打开它,但不会将焦点放在它上面。 如果我在第二个窗口打开一个缓冲区,那就更烦人了。
我更愿意在当前具有焦点的窗口中打开缓冲区列表,或者暂时将焦点更改为缓冲区列表。
首先,我想首先说ibuffer
函数与你想要的ibuffer
,并且在当前窗口中这样做,它绝对值得一试。
现在谈谈你的实际问题。 Cx Cb
默认调用函数list-buffers
。 如果使用Ch f
搜索该命令,它将显示文档,从那里您可以通过单击buff-menu.el
的带下划线的文本来查看该函数的源代码。
现在我们可以查看list-buffers
的来源,第一个被调用的函数是display-buffer
。 听起来很有希望。 我们现在可以再次使用Ch f
来搜索display-buffer
命令。 通过本文档阅读,我们看到变量display-buffer-alist
指示了display-buffer
,以及list-buffers
工作方式。 然后我们可以通过向display-buffer-alist
添加("*Buffer List*" . display-buffer-same-window)
来获得所需的结果。
总而言之,您只需在init文件中(add-to-list 'display-buffer-alist '("*Buffer List*" . display-buffer-same-window))
进行更改。
请尝试以下方法之一:
(defun my:list-buffers (&optional arg) (interactive "P") (display-buffer (list-buffers-no-select arg) '(display-buffer-same-window)))
(defun my:list-buffers2 (&optional arg) (interactive "P") (select-window (list-buffers arg)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.