在最近的Emacs中的其他窗口中显示缓冲区

Nor*_*löw 5 emacs buffer window

如何以编程方式在窗口中显示缓冲区other than the current,类似于Emacs的grep的行为next-error.我希望这可以在最新的Emacs 24.1中使用.请注意,此逻辑最近在Emacs主干中进行了修改,并合并为display-buffer具有相当复杂的调用语义的单个函数.我发现很难弄清楚display-buffer即使在多次阅读帮助之后仍然使用它.为什么没有这样的包装函数display-buffer-other-window

phi*_*ils 5

冗长的文档字符串display-buffer包括以下内容:

`display-buffer'的ACTION参数也可以有一个非零和非列表值.这意味着在所选窗口以外的窗口中显示缓冲区,即使它已在所选窗口中显示.如果使用前缀参数以交互方式调用,则ACTION为t.

因此,要在当前窗口以外的窗口中显示指定的缓冲区,可以使用:

(display-buffer BUFFER-OR-NAME t)
Run Code Online (Sandbox Code Playgroud)

  • `display-buffer`不选择窗口.`pop-to-buffer`调用display-buffer,然后选择窗口.请注意,`'other-window`ACTION与使用`t`(即"非零和非列表值")相同,并且不会导致使用`other-window`函数来确定窗口,因为它可能看起来; 它只会导致`inhibit-same-window`被设置. (2认同)

Nor*_*löw 3

Emacs 源码给了我答案

(pop-to-buffer BUFFER 'other-window)
Run Code Online (Sandbox Code Playgroud)