2010-11-20 193 views
4

我想编写一个emacs lisp函数,它将输出写入到当前窗口以外的窗口。如果只有当前的窗口,它应该创建一个新窗口,否则应该使用现有窗口。这与运行C-h-f(描述函数)时发生的情况类似,并且该描述在另一个窗口中弹出。做这个的最好方式是什么?Emacs Lisp - 打开新窗口

回答

9

参见display-buffer

显示缓冲器是在`window.el”交互式 编译Lisp函数。

它被绑定到C-x 4 C-o。

(显示缓冲缓冲或名称 &可选不-此的窗口框架)

阻止缓冲区缓冲区或名称出现在 一些窗口,但不要选择它。 缓冲区或名称必须是现有缓冲区的缓冲区名称或 名称。如果没有找到这样的 窗口,则返回 选择显示 缓冲区或名称的窗口或无。

可选参数未此窗口 非零装置显示比所选择的一个以外的 窗口缓冲区中, 即使它已经显示在 选择的窗口。

可选参数框架指定 指定缓冲区已被显示的时候调查哪些框架。 如果缓冲区已经在 中显示,则其中一个窗口 上的某个窗口只会返回该窗口。可能的 帧的值为:

`visible' - 考虑所有可见帧上的窗口。

0 - 考虑全部可见窗口或 图标化框架。

t - 考虑所有帧上的窗口。

一个特定的框架 - 考虑仅在框架上的窗口 。

无 - 考虑在选定的 帧(实际上最后的 非小型缓冲器帧)上的窗口。但是,如果 或者是 display-buffer-reuse-frames' or 弹出帧'非零(非零 而不是纯文本 终端上的图形),请考虑所有可见帧或 带图标的帧。

或者你可以使用​​,如果你想选择该缓冲区(这听起来像你没有),或with-output-to-temp-buffer结合被发送到临时缓冲区的standard-output - 读documentation了解更多详情(为此,请致电Michael)。

+2

谢谢。我还发现带有输出到临时缓冲区。它允许直接输入到临时缓冲区,而不是跟踪单独的缓冲区。 – 2010-11-20 03:16:15

+0

@Michael添加了文档链接。 – 2010-11-20 03:52:26