在emacs中获取下一个缓冲区,但不要切换到它

在emacs中获取下一个缓冲区,但不要切换到它,emacs,Emacs,emacs可以返回下一个缓冲区,但不能像这样切换到它吗 (next-buffer) -------编辑------ 我想要的是在运行前显示缓冲区名称(切换到下一个缓冲区),这样我就可以知道它要切换到哪个缓冲区 我按照@lawlist的建议解决了这个问题。但也需要评论出来 (set-window-next-buffers) 这将修改(切换到下一个缓冲区)的行为,正如Dan所说,这取决于您所追求的逻辑“下一个”的含义 获取下一个有效缓冲区可能很合适。e、 g: (let((blist(缓冲区列表

emacs可以返回下一个缓冲区,但不能像这样切换到它吗

(next-buffer)
-------编辑------

我想要的是在运行前显示缓冲区名称(切换到下一个缓冲区),这样我就可以知道它要切换到哪个缓冲区

我按照@lawlist的建议解决了这个问题。但也需要评论出来

(set-window-next-buffers)

这将修改(切换到下一个缓冲区)

的行为,正如Dan所说,这取决于您所追求的逻辑“下一个”的含义

获取下一个有效缓冲区
可能很合适。e、 g:

(let((blist(缓冲区列表)))
(当布利斯特
(let((buf(获取下一个有效缓冲区blist(当前缓冲区)t)))
(如适用)
(项目
(消息“下一步:%s”buf)
(setq blist(delq buf blist)))
(消息“不需要:%s”blist)
(setq blist nil(()))

打开库
窗口.el中的函数
切换到下一个缓冲区
,您将看到该函数的最后一部分引用了一个
新缓冲区
。这就是你所需要的——只需创建一个新函数并根据你的喜好进行调整。例如,禁用
设置窗口缓冲区起点和终点在新函数中。从回答中降级,因为它不会返回与“切换到下一个缓冲区”相同的内容,但我不确定这是否是您要的。无论如何:
(其他缓冲区)
返回最近选择的缓冲区
(cl find if not#'minibuffer p(缓冲区列表):start 1)
返回缓冲区列表中的下一个非minibuffer缓冲区<然而,代码>切换到下一个缓冲区的决策规则要复杂得多。