有一个`display-buffer`组合基本上是`delete-other-windows`?

时间:2014-01-01 23:26:03

标签: emacs elisp

我正在使用自定义display-buffer-alist功能:How to intercept a file before it opens and decide which frame魔法发生在find-file-noselect的引擎盖下,然后当我准备好显示缓冲区时,我已经使用(set-window-buffer (selected-window) (buffer-name buffer))(set-buffer (buffer-name buffer))。但是,当目标帧中存在多个窗口时,如果没有明确调用delete-other-windows,我很难接管整个帧。

当所述帧中已存在多个窗口时,要完全接管具有display-buffer的现有帧,是否有display-buffer函数或设置组合来完成该任务而不明确调用{{ 1}}?

或者,我是否可以使用delete-other-windows函数代替select-entire-frame?我希望缓冲区获得视觉焦点 - 框架中没有其他窗口。

以下是(set-window-buffer (selected-window) (buffer-name buffer))上文档的链接: http://www.gnu.org/software/emacs/manual/html_node/elisp/Display-Action-Functions.html#Display-Action-Functions


编辑(2014年1月1日):基于明显缺少基本display-buffer的其他功能或特定设置,并使用更多清除现有框架上的平板在一个现有窗口中,这是与delete-other-windows

一起使用的display-buffer-alist函数的修订后尾(指向一个或多个不同条件)
(display-buffer (find-file-noselect filename))

1 个答案:

答案 0 :(得分:1)

你说:

  

或者,是否有一个select-whole-frame函数我可以使用而不是(set-window-buffer(selected-window)(缓冲区名称缓冲区))?我希望缓冲区获得视觉焦点。

不确定你的意思,但如果我读得正确,我会说你可能正在寻找select-frame-set-input-focus