下一个缓冲区在emacs中拆分窗口时跳过缓冲区

下一个缓冲区在emacs中拆分窗口时跳过缓冲区,emacs,emacs24,Emacs,Emacs24,我是一个新的Emacs用户,正在学习如何垂直分割窗口并在每个窗格中循环缓冲区 但是,在一个窗格中打开一个新文件后,下一个缓冲区不会在另一个窗格中循环浏览该文件,而是在该文件在新窗格中出现一次之后。这可以复制如下: 在新的emacs会话中打开2个文件A和B 使用“向右拆分窗口”垂直拆分窗口 “下一个缓冲区”循环通过PaneLeft和PanerRight中的A和B 在PaneLeft中打开文件C “下一个缓冲区”循环通过PaneLeft中的A、B、C 确保C在PaneLeft中聚焦,然后切换到Pan

我是一个新的Emacs用户,正在学习如何垂直分割窗口并在每个窗格中循环缓冲区

但是,在一个窗格中打开一个新文件后,下一个缓冲区不会在另一个窗格中循环浏览该文件,而是在该文件在新窗格中出现一次之后。这可以复制如下:

在新的emacs会话中打开2个文件A和B

使用“向右拆分窗口”垂直拆分窗口

“下一个缓冲区”循环通过PaneLeft和PanerRight中的A和B

在PaneLeft中打开文件C

“下一个缓冲区”循环通过PaneLeft中的A、B、C

确保C在PaneLeft中聚焦,然后切换到PanerRight“下一个缓冲区”仅在PanerRight中循环通过A和B。它跳过C可能是因为C在PaneLeft中已经可见

切换回PaneLeft,并确保A或B在PaneLeft中聚焦

切换回PanerRight,现在“下一个缓冲区”在A、B和C之间循环,不管PaneLeft中显示什么

这是故意的行为吗?我怎样才能让它按我的预期工作


注意:我在运行时没有任何自定义扩展,我的.emacs几乎是空的。

切换到visible buffer
变量来控制此行为。来自GNU Emacs 24.2的文档:

switch-to-visible-buffer is a variable defined in `window.el'.
Its value is t

Documentation:
If non-nil, allow switching to an already visible buffer.
If this variable is non-nil, `switch-to-prev-buffer' and
`switch-to-next-buffer' may switch to an already visible buffer
provided the buffer was shown in the argument window before.  If
this variable is nil, `switch-to-prev-buffer' and
`switch-to-next-buffer' always try to avoid switching to a buffer
that is already visible in another window on the same frame.

You can customize this variable.

This variable was introduced, or its default value was changed, in
version 24.1 of Emacs.

如果这不能像预期的那样工作,那么可能有一个bug。

我无法在Windows XP上的emacs24中重现这一点。我循环浏览两个窗口中的所有缓冲区。
next buffer
避免显示在其他窗口中已经可见的缓冲区,这是预期行为(不知道是否有交互式替换
next buffer
而没有此属性)。多亏了提示,我编辑了问题以反映我在进一步调查后的发现。下一个缓冲区似乎可以在另一个窗口中显示一个可见的缓冲区,但最初不显示。