我面前有emacs。
我运行了一个find-grep,它有很多点击,显示在一个窗口中。文件名以绿色显示为超链接。
我将它作为唯一的窗口,使用C-x 1。
如果单击文件名,窗口将垂直分割,找到文本的文件将显示在另一个窗口中。
如果我点击更多文件名,那么新文件将替换旧文件,这就是我想要发生的事情。
到目前为止,非常好......
然而,如果我调整窗口大小,那么emacs将定期(当我点击时)再次分割两个窗口中的一个,使得显示难以阅读。然后它将循环在两个新窗口之间打开新文件。偶尔它会打开更多的窗户,使情况变得更糟。如果我关闭这些新窗口,他们就会重新打开。
事实上,即使我没有调整任何大小,有时也会出现这种不正常的行为。如果我这样做,似乎更经常发生。
我希望emacs能够停止错误,只需要一个find-grep窗口和一个'display'窗口,并且总是用新文件替换显示窗口。我还希望能够将这些窗口设置为最方便的尺寸。
有没有办法实现这个目标?
或者任何人都可以指点我一篇关于如何整体(替换这个窗口的内容/替换不同窗口的内容/通过拆分创建另一个窗口)的东西的作品,所以我可以去理解它。 / p>
答案 0 :(得分:2)
简短修复: 尝试这样做
(setq split-height-threshold nil
split-width-threshold nil)
这将阻止Emacs自动(水平或垂直)分割窗口。在其他情况下这可能是不受欢迎的,但这应该可以完成。试试一个星期左右,看看它是否会扰乱你的流量。
另外,我发现如果该点位于其中一个窗口中,并且我点击了一个链接,则该文件会在下一个窗口中打开(如果有的话)。
因此,如果您想在右侧窗口中打开文件(当您有多个窗口时),您可以确保该点位于所需窗口之前的窗口中。
更长的答案:
行。我能够重现这个问题。事情是显示文件非常大(宽或高)的窗口,因为您调整了它的大小并且Emacs看到宽度或高度大于相应的阈值并且同样地拆分它。因此,我们必须要么提高门槛,要么完全不允许这种行为。
而且,只是为了回答最后几个问题:
(selected-window)
(next-window)
(select-window foo-window)
(current-buffer)
(window-buffer foo-window)
(set-window-buffer foo-window bar-buffer)
我确信你可以使用这些功能将合适的窗口/缓冲区管理功能合并在一起。
您可以使用C-h f
获取有关这些功能的更多详细信息。
另请参阅Elisp手册 - http://www.chemie.fu-berlin.de/chemnet/use/info/elisp/elisp_26.html