2

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

假设有一个“six-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   |       |     |
|       |       |     |
-----------------------

编辑

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

4

3 回答 3

2

试试这三个步骤:

  1. 关闭左上角的窗口。

    :q

  2. 移动到左下角的窗口。

    CTRL-W w CTRL-W w

  3. 将左下窗口移至最左侧。

    CTRL-w H

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

let @q = ":q^M^Ww^Ww^Ww^WH"
于 2013-02-17T13:42:40.470 回答
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
于 2013-02-17T15:15:31.393 回答
1

您可以在您的~/.vimrc:

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

解释:

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

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

来源

于 2013-02-17T17:55:20.060 回答