【发布时间】:2014-09-26 18:00:10
【问题描述】:
在 Vim 中,我可以移动拆分。例如,如果我的窗口被水平分割成两部分,最顶部的分割是垂直分割(总共 3 个分割),我可以将右上角的分割向右移动以成为占据整个垂直空间的垂直分割。
这种重新排列可能吗?
更新:我知道调整大小是可能的,但我正在寻找移动。我感觉 Emacs 不支持这个。
【问题讨论】:
标签: emacs
在 Vim 中,我可以移动拆分。例如,如果我的窗口被水平分割成两部分,最顶部的分割是垂直分割(总共 3 个分割),我可以将右上角的分割向右移动以成为占据整个垂直空间的垂直分割。
这种重新排列可能吗?
更新:我知道调整大小是可能的,但我正在寻找移动。我感觉 Emacs 不支持这个。
【问题讨论】:
标签: emacs
如果您有超过 2 个窗口,您可能会对 C-x + 感兴趣。它同样重新排列框架上的窗口。例如,当您连续执行两个 C-x 2 并希望窗口占据框架上的相同空间时,这很方便。
【讨论】:
不,默认情况下不是。您必须使用的基本上是C-x 0、C-x 1 等。在Emacs Wiki 中查找可能会或可能不会做您正在寻找的扩展。
【讨论】:
FWIW,如果您在 GUI 中运行,那么您可以使用鼠标快速轻松地精确地重新排列窗口大小。这与您要求的不太一样,但在某些情况下可能是一个方便的选择。
您可以单击模式行的任何非“活动”区域(例如缓冲区名称),然后将其向上或向下拖动。
左右拖动更加繁琐。您必须单击两条模式线之间的确切边界,然后才能向左/向右拖动。
对于您的具体示例,我认为不支持。 AFAIK 您只能在其现有的“父”窗口中重新组织窗口拆分(本示例中的上部拆分)。要使右上角的窗口填充垂直空间,您可以使用 C-x 0 删除底部窗口,或使用 C-x 1 删除所有其他窗口,然后重新以所需的方式拆分它们。
(实际上,我经常认为拥有一个自定义库来“旋转”窗口拆分会是一件好事。)
【讨论】:
M-x winsav-rotate 可用。
我相信窗口调整大小命令内置于window.el,从emacswiki,您想要记录的功能是:
shrink-window-horizontally ; C-x {
enlarge-window-horizontally ; C-x }
enlarge-window ; C-x ^
shrink-window ; not bound on my system
cmets 是它们在我的系统上绑定的,但我不知道是不是我自己这样做的。
它们都带有一个前缀参数,即放大/缩小的行数。最后两个默认为垂直。
【讨论】:
据我所知,您无法从已经沿该方向拆分的窗口创建一个运行屏幕长度或宽度的新窗口。如果您关闭窗口,缓冲区将保持打开状态,因此您可以删除窗口,然后将它们拆分为您想要的配置。然后通过按 C-x 左箭头或右箭头更改在您所在的窗口中显示的缓冲区。
我应该补充一点,这个答案是关于“香草”emacs,如果你真的想要的话,可能有一种方法可以做 OP 询问的事情。毕竟是emacs。
【讨论】: