繁体   English   中英

Emacs - 打开缓冲区列表而不替换另一个缓冲区

[英]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))进行更改。

请尝试以下方法之一:

  1. 打开当前具有焦点的缓冲区列表:
(defun my:list-buffers (&optional arg)
  (interactive "P")
  (display-buffer (list-buffers-no-select arg) '(display-buffer-same-window)))
  1. 改变焦点
(defun my:list-buffers2 (&optional arg)
  (interactive "P")
  (select-window (list-buffers arg)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM