在Vim中从垂直分割快速切换到水平分割

oalqel3c  于 12个月前  发布在  其他
关注(0)|答案(9)|浏览(150)

如何在Vim中将当前窗口从水平拆分切换为垂直拆分,反之亦然?

我刚才无意中把钥匙弄丢了,但我再也找不到钥匙了。

rsl1atfo

rsl1atfo1#

Vim mailing list说(重新格式化以提高可读性):
将 * 两个 * 垂直拆分窗口更改为水平拆分窗口
Ctrl-wtCtrl-wK
从水平到垂直:
Ctrl-wtCtrl-wH
说明:
Ctrl-wt使第一个(顶部)窗口当前
Ctrl-wK将当前窗口移动到最顶部的全宽
Ctrl-WH将当前窗口移动到最左边的全高位置
注意,t是,K和H是。
此外,只有两个窗口,似乎你可以放弃Ctrl-wt部分,因为如果你已经在只有两个窗口之一,什么是使其当前的点?

sshcrbum

sshcrbum2#

Ctrl-w后接H、J、K或L(大写)将当前窗口分别移动到远处的leftbottomtopright,就像正常的光标导航一样。
小写等效项移动焦点而不是移动窗口。

tzdcorbm

tzdcorbm3#

当您有两个或更多的窗口水平或垂直打开,并希望将它们切换到其他方向时,您可以使用以下方法:
(切换到水平)

:windo wincmd K

(切换到垂直)

:windo wincmd H

它有效地单独进入每个窗口,并使用^WK或^WH。

hmae6n7t

hmae6n7t4#

下面的ex命令将(重新)拆分任意数量的窗口:

  • 垂直分裂(例如在窗口之间设置垂直分隔线),键入:vertical ball
  • 要水平拆分,请键入:ball

如果有隐藏的缓冲区,发出这些命令也会使隐藏的缓冲区可见。

vql8enpb

vql8enpb5#

在Vim中,看看下面的内容,看看你可能做的事情的不同替代方案:
:帮助打开窗口
例如:
Ctrl-W
Ctrl-Wo
Ctrl-Wv
Ctrl-Wo
Ctrl-W
...

7nbnzgx9

7nbnzgx96#

横向到纵向拆分

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

uxh89sit

uxh89sit7#

受Steve answer的启发,我写了一个简单的函数,可以在当前选项卡中的所有窗口的垂直和水平拆分之间切换。您可以像下面最后一行那样将其绑定到Map。

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>
wbrvyc0a

wbrvyc0a8#

按照Mark Rushakoff的提示above,这是我的Map:

" 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交换两个窗口,如果他们不是在良好的秩序。
w8ntj3qf

w8ntj3qf9#

在2023年遇到这个问题,Vim和neovim都提供了内置的winlayout()函数,它将窗口的结构作为树返回。这可以以任何方式进行解析和操作,然后通过执行Vi & Vim回答中概述的操作重新应用以呈现转换后的布局。
受此用例的启发,我还从自己的配置中提取了一个名为ventana.nvim的小插件,其他人可能也会觉得使用起来很方便。

相关问题