我正在使用自定义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))
答案 0 :(得分:1)
你说:
或者,是否有一个select-whole-frame函数我可以使用而不是(set-window-buffer(selected-window)(缓冲区名称缓冲区))?我希望缓冲区获得视觉焦点。
不确定你的意思,但如果我读得正确,我会说你可能正在寻找select-frame-set-input-focus
。