[英]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.