假设我在vim中有这个布局:
+-----+-----+-----+
| | | |
| a | | |
| | | |
+-----+ c | d |
| | | |
| b | | |
| | | |
+-----+-----+-----+
是否有可能以这种布局结束:
+-----+-----+-----+
| | | |
| a | c | |
| | | |
+-----+-----+ d |
| | |
| b | |
| | |
+-----+-----+-----+
喜欢“向右扩展”命令吗?
PS。不要告诉我在 b 上使用ctrl-w J
,然后在 d 上使用ctrl-w L
,我的布局实际上比这更复杂。我真的在寻找“扩展权限”命令(如果它存在)。
答案 0 :(得分:1)
这很难实现作为一项功能,因为可能会考虑很多边缘情况,也就是为什么vim本身没有这样做。
如果您不想在 b 上使用ctrl-w J
,那么在 d 上使用ctrl-w L
,那么最简单的方法就是关闭 c 拆分,然后在 a 上打开一个新的垂直拆分,并在其中打开所需的缓冲区/文件。
答案 1 :(得分:0)
这很脆弱,但可能比什么都好!
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
您可以使用nnoremap <c-w>e :call ExtendRight()<CR>
映射它。