5

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

但是,在一个窗格中打开一个新文件后,next-buffer 不会在另一个窗格中循环遍历该文件,而只会在它在新窗格中出现一次之后循环。这可以复制如下:

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

使用“split-window-right”垂直拆分窗口。

'next-buffer' 在 PaneLeft 和 PaneRight 中循环通过 A 和 B。

在 PaneLeft 中打开文件 C。

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

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

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

切换回 PaneRight,现在“下一个缓冲区”循环通过 A、B 和 C,而不管 PaneLeft 中可见什么。

这是预期的行为吗?我将如何让它按我的预期工作?

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

4

1 回答 1

2

有一个switch-to-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.

如果这不能正常工作,则可能存在错误。

于 2013-02-07T20:56:43.803 回答