如何关闭窗口并指定剩余窗口的扩展?

时间:2013-02-17 13:28:20

标签: vim

是否可以在vim中关闭窗口并指定哪一个将填充剩余空间?

假设有一个“6-pak”布局并关闭左上方窗口XI想要设置底部窗口(B)将扩展并填充关闭窗口占用的空间而不是右边的那个(A) :

----------------------- //Closing top left window X
|       |       |     |
|    X  |   A   |     |
|       |       |     |
-----------------------
|       |       |     |
|   B   |       |     |
|       |       |     |
-----------------------

----------------------- //The desired result B is expanded upwards
|       |       |     |
|       |   A   |     |
|       |       |     |
|   B   |--------------
|       |       |     |
|       |       |     |
|       |       |     |
-----------------------

----------------------- //Actual result
|          |          |
|     A    |          |
|          |          |
-----------------------
|       |       |     |
|   B   |       |     |
|       |       |     |
-----------------------

修改

我正在寻找不一定关闭左上窗口的通用解决方案。我想指定任何相邻的窗口来填充当前窗口位置。这可能是关闭中间的底部,并指定右底部扩展。

3 个答案:

答案 0 :(得分:2)

尝试以下三个步骤:

  1. 关闭左上角的窗口。

    :Q

  2. 移至左下方窗口。

    CTRL-W w CTRL-W w

  3. 将左下方的窗口移动到最左侧。

    CTRL-w H

  4. 然后,您可以将这些命令记录到寄存器中以保存击键,例如,

    let @q = ":q^M^Ww^Ww^Ww^WH"
    

答案 1 :(得分:1)

如果您的光标位于窗口X

Ctrl-W j Ctrl-W H Ctrl-W p :q

如果您的光标可能在任何窗口中,请尝试:

Ctrl-W t Ctrl-W j Ctrl-W H Ctrl-W p :q

答案 2 :(得分:1)

您可以在~/.vimrc中添加以下内容:

map <F2> :q \| wincmd j \| wincmd H <CR>

说明:

  • map <F2> - 按 F2
  • 可获得的功能
  • q - 关闭当前窗口
  • wincmd j - 转到底部窗口
  • wincmd H - 将此(当前)窗口移至最左侧

\|用于组合所有这些命令。

<强>来源