如何在Vim中将当前窗口从水平分割切换到垂直分割,反之亦然?
我刚才不小心打开了,但现在找不到钥匙了。
如何在Vim中将当前窗口从水平分割切换到垂直分割,反之亦然?
我刚才不小心打开了,但现在找不到钥匙了。
当前回答
按照上面Mark Rushakoff的建议,下面是我的地图:
" vertical to horizontal ( | -> -- )
noremap <c-w>- <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\| <c-w>t<c-w>H
noremap <c-w>\ <c-w>t<c-w>H
noremap <c-w>/ <c-w>t<c-w>H
编辑:使用ctrl - wr切换两个窗口,如果他们不是在良好的顺序。
其他回答
按照上面Mark Rushakoff的建议,下面是我的地图:
" vertical to horizontal ( | -> -- )
noremap <c-w>- <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\| <c-w>t<c-w>H
noremap <c-w>\ <c-w>t<c-w>H
noremap <c-w>/ <c-w>t<c-w>H
编辑:使用ctrl - wr切换两个窗口,如果他们不是在良好的顺序。
水平到垂直分割 Ctrl+W为窗口命令, 然后是Shift+H或Shift+L
垂直到水平分割 Ctrl+W为窗口命令, 然后是Shift+K或Shift+J
当只有两个窗口时,这两种解决方案都适用。
在发出窗口命令Ctrl+W之后,基本上就是将窗口按Shift+方向字母指示的方向移动。
默认情况下,在垂直分割中打开帮助
将这两行添加到.vimrc:
cabbrev help vert help
cabbrev h vert h
Cabbrev是命令的缩写。
:vert[ical] {cmd}总是在垂直分割窗口中执行cmd。
当您有两个或多个窗口水平或垂直打开,并希望将它们全部切换到其他方向时,您可以使用以下方法:
(切换到水平)
:windo wincmd K
(切换到垂直方向)
:windo wincmd H
它有效地分别到每个窗口使用^WK或^WH。
下面的ex命令将(重新)分割任意数量的窗口:
要垂直分割(例如在窗口之间做垂直分隔),输入:vertical ball 要水平拆分,输入:ball
如果存在隐藏缓冲区,发出这些命令也将使隐藏缓冲区可见。
受Steve answer的启发,我写了一个简单的函数,在当前选项卡中的所有窗口之间切换垂直和水平分割。您可以像下面最后一行那样将它绑定到映射。
function! ToggleWindowHorizontalVerticalSplit()
if !exists('t:splitType')
let t:splitType = 'vertical'
endif
if t:splitType == 'vertical' " is vertical switch to horizontal
windo wincmd K
let t:splitType = 'horizontal'
else " is horizontal switch to vertical
windo wincmd H
let t:splitType = 'vertical'
endif
endfunction
nnoremap <silent> <leader>wt :call ToggleWindowHorizontalVerticalSplit()<cr>