如何重新排列Emacs中的拆分窗格?

时间:2010-10-01 12:09:28

标签: emacs

在Vim我可以移动一个分裂。例如,如果我的窗口水平分割成两个,最顶部的分割垂直分割(总共3个分割),我可以将右上角分割移到右边,成为占据整个垂直空间的垂直分割。

这种重排是否可行?

更新:我知道调整大小是可能的,我正在寻求移动。我觉得Emacs不支持这个。

5 个答案:

答案 0 :(得分:4)

当您拥有2个以上的窗口时,您可能会对 C-x + 感兴趣。它同样重新排列框架上的窗户。例如,当您连续执行两个 C-x 2 并希望窗口占据框架上的相同空间时,这很方便。

答案 1 :(得分:4)

FWIW,如果您在GUI中运行,那么您可以使用鼠标快速轻松地精确重新排列窗口大小。这与你要求的并不完全相同,但在某些情况下可能是一个方便的选择。

您可以单击模式行的任何非“活动”区域(例如缓冲区名称),然后向上或向下拖动。

左右拖动更加繁琐。您必须单击两个模式行之间的确切边框,然后才能向左/向右拖动。

对于您的具体示例,我认为不支持。 AFAIK只能在现有的“父”窗口(本例中的上部分割)中重新组织窗口分割。要使右上方窗口填充垂直空间,您可以使用 Cx 0 删除底部窗口,或使用 Cx 1 删除所有其他窗口,然后重新以理想的方式将它们分开。

(切线,我经常认为一个自定义库来“旋转”窗口分割将是一件好事。)

答案 2 :(得分:3)

不,默认情况下不是。您必须使用的内容基本上是C-x 0C-x 1等。请在Emacs Wiki中查找可能会或可能不会执行您要查找的内容的扩展程序。

答案 3 :(得分:1)

我相信窗口调整大小命令内置于window.el,来自emacswiki您要记录的函数是:

shrink-window-horizontally  ; C-x {
enlarge-window-horizontally ; C-x }
enlarge-window              ; C-x ^
shrink-window               ; not bound on my system

评论是他们在我的系统上必须遵守的,但我不知道自己是否这样做。

所有这些都采用前缀参数,即放大/缩小的行数。最后两个默认为垂直。

答案 4 :(得分:0)

据我所知,您无法创建一个新窗口,该窗口从已经在该方向上分割的窗口运行屏幕的长度或宽度。如果关闭窗口,缓冲区仍保持打开状态,因此您可以删除窗口,然后将其拆分为所需的配置。然后按C-x向左箭头或向右箭头更改您所站窗口中显示的缓冲区。

我应该补充一点,这个答案是关于" vanilla" emacs,可能有一种方法可以做OP的问题,如果你真的想要的话。毕竟它是emacs。