我可以在特定的框架中禁用窗口分割吗?



我是一个使用emacs的开发人员。在emacs中,我使用多个框架(大多数人称之为X窗口),并为我的构建使用compile函数。我喜欢有一个框架用于我的编译缓冲区,其他的用于源代码。这使我能够轻松地导航到构建错误,并获得我正在研究的源代码的一个漂亮的大视图,以及我的构建输出的一个漂亮的大视图。当我从源帧使用'next-error'函数时,这工作得很好。

但是,当我将指针移动到编译框架中,并单击错误时,它会垂直分割该框架以显示相关的源代码。我想让它在我的另一个帧中显示相关的源。

是否有一种方法来"锁定"一个框架,使它不会分裂成窗口,所以其他框架将被使用?如果它拆分我的其他帧之一来显示新的源文件,我可以接受——只是不包括编译的帧(因为这意味着我必须取消拆分该帧,然后切换不同帧的缓冲区来显示有问题的缓冲区——这很麻烦)。

或者,如果我可以在编译缓冲区中的错误上使用不同的鼠标按钮来显示"访问此文件并在不同的框架中行",则会很好。

我相信你可以实现你的目标,使窗口在你的"编译框架" 专用:

可以告诉显示缓冲区的函数不使用特定的窗口,方法是将这些窗口标记为专用于它们的缓冲区。

交互,M-x set-window-dedicated-p应该使您的窗口专用。

来自elisp,类似于

(set-window-dedicated-p (selected-window) 1)

也应该这样做。用t代替1将使窗口强专用:

作为一种特殊情况,如果标志t,则窗口将强烈专用于其缓冲区。当set-window-buffer所操作的窗口被强专用于它的缓冲区并且还没有显示它被要求显示的缓冲区时,它会发出一个错误信号。其他函数不会将t与任何非nil值区别对待。

最新更新