在Vim我可以移动一个分裂。例如,如果我的窗口水平分割成两个,最顶部的分割垂直分割(总共3个分割),我可以将右上角分割移到右边,成为占据整个垂直空间的垂直分割。
这种重排是否可行?
更新:我知道调整大小是可能的,我正在寻求移动。我觉得Emacs不支持这个。
答案 0 :(得分:4)
当您拥有2个以上的窗口时,您可能会对 C-x + 感兴趣。它同样重新排列框架上的窗户。例如,当您连续执行两个 C-x 2 并希望窗口占据框架上的相同空间时,这很方便。
答案 1 :(得分:4)
FWIW,如果您在GUI中运行,那么您可以使用鼠标快速轻松地精确重新排列窗口大小。这与你要求的并不完全相同,但在某些情况下可能是一个方便的选择。
您可以单击模式行的任何非“活动”区域(例如缓冲区名称),然后向上或向下拖动。
左右拖动更加繁琐。您必须单击两个模式行之间的确切边框,然后才能向左/向右拖动。
对于您的具体示例,我认为不支持。 AFAIK只能在现有的“父”窗口(本例中的上部分割)中重新组织窗口分割。要使右上方窗口填充垂直空间,您可以使用 Cx 0 删除底部窗口,或使用 Cx 1 删除所有其他窗口,然后重新以理想的方式将它们分开。
(切线,我经常认为一个自定义库来“旋转”窗口分割将是一件好事。)
答案 2 :(得分:3)
不,默认情况下不是。您必须使用的内容基本上是C-x 0
,C-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。