【问题标题】:Can I disable window-splitting in a particular frame?我可以在特定框架中禁用窗口分割吗?
【发布时间】:2014-05-06 17:26:03
【问题描述】:

我是一名使用 emacs 的开发人员。在 emacs 中,我使用多个框架(大多数人将其称为 X 窗口)和 compile 函数用于我的构建。我喜欢为我的 compilation 缓冲区设置一帧,而其他帧用于源代码。这使我可以轻松导航以构建错误,并获得我正在调查的源的一个很好的大视图,以及我的构建输出的一个很好的大视图。当我使用源框架中的“下一个错误”功能时,这可以正常工作。

但是当我将指针移到 compilation 框架中并单击错误时,它会垂直拆分该框架以显示相关源。我希望它在我的其他框架之一中显示相关来源。

有没有办法“锁定”一个框架,这样它就不会被分割成多个窗口,而是使用其他框架?如果它拆分我的其他帧之一以显示新的源文件,我没问题 - 只是不是 compilation 帧(因为这意味着我必须取消拆分该帧,然后切换不同帧的缓冲区显示有问题的缓冲区 - 这很麻烦)。

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

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    我相信您可以通过在“编译框架”dedicated 中制作窗口来实现您的目标:

    通过将这些窗口标记为专用于其缓冲区,可以告知用于显示缓冲区的函数不使用特定窗口。

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

    来自 elisp,类似

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

    应该这样做。将1 替换为t 将使窗口高度专用

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

    【讨论】:

    • 我不能使用 M-x 但我可以在 eval-expression 中使用 elisp。不幸的是,这似乎没有达到预期的效果。即使我使用“t”标志,我仍然会拆分窗口。
    • 我认为这里的问题是专用的“windows”专用于 emacs 的 window 定义,而不是 window 的 X 定义(emacs 称为框架)。我想我想要一个更像专用框架的东西。
    • @user3149905,也许this question 会有所帮助?
    • 对不起,克里斯 - 没看到。这又是关于专用窗口的全部内容。据我所知,专用窗口功能可防止缓冲区自动切换出帧,但不能阻止拆分帧以显示另一个缓冲区。至少在 compile.el 的情况下不是 - 当您单击 compilation 缓冲区中的错误时,它可能正在做一些时髦的事情,覆盖预期的功能。
    • @user3149905,很遗憾听到我无法提供帮助。您可能必须自定义编译缓冲区使用的任何主要模式。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2023-02-04
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多