Vim 维姆:“我不知道。”;扩展;从窗口进入下一窗口

Vim 维姆:“我不知道。”;扩展;从窗口进入下一窗口,vim,window,Vim,Window,假设我在vim中有这样的布局: +-----+-----+-----+ | | | | | a | | | | | | | +-----+ c | d | | | | | | b | | | | | | | +-----+-----+-----+ 是否有可能以这种布局结束: +-----+-----+-----+ | | | |

假设我在vim中有这样的布局:

+-----+-----+-----+
|     |     |     |
|  a  |     |     |
|     |     |     |
+-----+  c  |  d  |
|     |     |     |
|  b  |     |     |
|     |     |     |
+-----+-----+-----+
是否有可能以这种布局结束:

+-----+-----+-----+
|     |     |     |
|  a  |  c  |     |
|     |     |     |
+-----+-----+  d  |
|           |     |
|     b     |     |
|           |     |
+-----+-----+-----+
像“向右延伸”命令


注:不要告诉我在b上使用
ctrl-w J
,然后在d上使用
ctrl-w L
,我的布局实际上比这更复杂。我真的在寻找一个“extend right”命令,如果它存在的话。

这很脆弱,但可能比没有要好

function! ExtendRight()
    let l:start=winnr()
    exe "normal \<c-w>l"
    let l:shrink=bufnr('%')
    close
    exe "normal " . l:start . "\<c-w>w"
    exe "normal \<c-w>k"
    vsplit
    exe "b " . l:shrink
endfunction
函数!ExtendRight()
设l:start=winnr()
exe“正常\l”
设l:shrink=bufnr(“%”)
关闭
exe“正常”。l:开始。“\w”
exe“正常\k”
vsplit
exe“b”。l:心理医生
端功能

您可以用“代码> NoReMePe:调用ExtRelDype()/<代码> .< /P> < P>这是一个很难实现的特性,因为有很多边缘情况需要考虑,为什么VIM本身不这样做。
如果您不喜欢在b上使用
ctrl-wj
的选项,那么在d上使用
ctrl-wl
最简单的方法是关闭c拆分,然后在a上打开一个新的垂直拆分,并在其中打开所需的缓冲区/文件。

是的,我认为不存在用于此操作的内置命令。你必须用
J