Emacs 使用C-x C-b切换到缓冲区而不更改窗口

Emacs 使用C-x C-b切换到缓冲区而不更改窗口,emacs,window,buffer,Emacs,Window,Buffer,我通常在emacs中打开2-3个窗口,并且特别注意哪个缓冲区显示在哪里。虽然C-x C-f在当前窗口中显示缓冲区(已访问的文件),但C-x C-b(以及从recentf包中打开的recentf文件)有时会在另一个窗口中显示缓冲区,这就需要进行复杂的重新排列 有没有办法强制这些命令在发出C-x C-f或C-x C-b时激活的窗口中显示缓冲区?出现问题的函数列出缓冲区是一行的,因此只需将显示缓冲区更改为切换为缓冲区,并重新定义键盘快捷键以指向新的缓冲区即可功能: (取消我的列表缓冲区(&可选参数)

我通常在emacs中打开2-3个窗口,并且特别注意哪个缓冲区显示在哪里。虽然C-x C-f在当前窗口中显示缓冲区(已访问的文件),但C-x C-b(以及从recentf包中打开的recentf文件)有时会在另一个窗口中显示缓冲区,这就需要进行复杂的重新排列


有没有办法强制这些命令在发出C-x C-f或C-x C-b时激活的窗口中显示缓冲区?

出现问题的函数
列出缓冲区
是一行的,因此只需将
显示缓冲区
更改为
切换为缓冲区
,并重新定义键盘快捷键以指向新的缓冲区即可功能:

(取消我的列表缓冲区(&可选参数)
“显示现有缓冲区的列表。
该列表显示在名为\“*缓冲区列表*\”的缓冲区中。
有关缓冲区菜单的说明,请参见“缓冲区菜单”。
默认情况下,将列出所有缓冲区,但名称以开头的缓冲区除外
带空格(供内部使用)。带前缀参数
ARG,仅显示正在访问文件的缓冲区。“
(交互式“P”)
(切换到缓冲区(列出缓冲区noselect参数)))
(定义键ctl-x-map“\C-b”我的列表缓冲区)

12小时后,我又问了一个类似的问题。谢谢,这篇参考资料用一个非常简单的方法解决了我的问题。现在我的.emacs文件中有了
(添加到列表“显示缓冲区列表”(“*buffer list*”.display buffer same window))
。如果不是评论的话,我会接受这个答案。这都很好,我第一次就得到了一些分数,很高兴我能帮上忙;)经过一些使用,我意识到它不能与C-x C-b一起工作。我得到“错误的类型参数:listp,显示缓冲区相同窗口”。不过,它可以与C-x C-f和recentf一起使用。非常感谢。很好!为什么他们没有在核心团队中这样做?我也很恼火,
C-xc-b
打开了缓冲区列表,而不是光标所在的位置,并在另一个窗口中打开了新的缓冲区。。。现在它工作了它应该如何工作。。。我看不到任何规则(不是当前光标之前的窗口…似乎真的是随机选择的…有人注意到哪个窗口如此随意地跳到了吗?-可能是我
C-x o
-ed]看到的最后一个窗口?。@Gwang JinKim--这里是一个链接,指向说明
显示缓冲区如何工作的文档。
显示缓冲区列表
显示缓冲区
系列功能的其他方面相当复杂,许多经验丰富的Emacs用户由于害怕打开潘多拉魔盒,似乎避免在Emacs.stackexchange.com和/或stackoverflow.com上回答问题。。。这些问题的答案仍然会被发布,但这些答案通常来自初级的Emacs用户……哈哈哈,非常感谢!这么复杂的规则。。。这就是为什么我说不通。xD-无论如何,非常感谢您简洁的回答emacs的行为是多么复杂。。。谁有那么多时间来创建此函数?;)老实说,这应该是默认行为,或者应该修改现有行为,使活动窗口位于缓冲区列表窗口中。非常感谢你的回答!现在,我想知道为什么核心团队在创建新窗口时不将焦点切换到新窗口??即使是C-x 2也会保留在当前窗口中。。。