我正在处理拆分(使用^ w + v,^ w + s)缓冲区,但是有时我想扩大当前拆分或更改其高度。我该如何实现?

#1 楼

有几个窗口命令可用于执行此操作:



Ctrl + W +/-:增加/减小高度(例如20<C-w>+

Ctrl + W> / <:增加/减小宽度(例如30<C-w><

Ctrl + W _:设置高度(例如50<C-w>_

Ctrl + W | :设置宽度(例如50<C-w>|

Ctrl + W =:均衡所有窗口的宽度和高度

另请参见::help CTRL-W

评论


可能还需要注意的是,前两个选项一次要多于一个行/列才能调整大小。

–丰富
15年2月6日在15:17

可能还值得注意的是,第3个和第4个选项无需花费任何时间即可调整为最大高度/宽度。

–迈克尔
16 Dec 2'在15:27

在我的系统上,它是:help CTRL-W而不是:help CTRL_W

–́Alexej Magura
17年4月19日在19:27

在Windows上,Cygwin,vim:当您使用vimdiff -o bigfile1.bash bigfile2.bash时:ctrl-w =:在顶部打开一个MiniBufExplorer第3个窗口(现在这3个窗口的大小相等),关闭该窗口将使第一个窗口.bash文件的窗口2比第二.bash文件窗口大。对2个.vim文件进行相同的操作可获得相同的结果。 :(与vim -o相同

–奥利维尔·杜拉克(Olivier Dulac)
17-10-25在17:03



询问前两个选项的快捷方式vi.stackexchange.com/questions/16786/…

– KcFnMi
18年7月18日在11:43



#2 楼

您还可以使用resize命令:



:resize [+-]N-调整水平分割的大小,将高度增加或减少N个字符。

:vertical resize [+-]N-调整大小

:resize N-调整水平分割的大小,将高度设置为N个字符。

:vertical resize N-调整垂直分割的大小,设置宽度到N个字符。

这些等效于Ctrlw命令。请参阅:help window-resize

评论


类似于:vim.wikia.com/wiki/Resize_splits_more_quickly

–filBot3
18-11-27在15:43

我很高兴,终于找到最简单的方法是resize命令。控制命令是一种威胁,我一直在打乒乓球而不用调整它的大小。.谢谢@muru

–nitinr708
20 Mar 10 '20 at 14:55

#3 楼

这是我喜欢使用vim鼠标模式的几个原因之一。

如果使用GUI版本,或者终端支持发送拖动事件(例如xterm或rxvt-unicode),则可以单击分割线并拖动以精确调整窗口大小,而无需使用ctrl-w加,减,减,更大的组合进行大量猜测。

在终端版本中,您必须进行设置鼠标模式才能正常工作

:set mouse=n


(我使用'n',但'a'也有效)

,您必须设置tty鼠标的类型

:set ttymouse=xterm2


很多人说,使用鼠标浪费了很多时间(主要是因为从中移出手需要花费时间键盘),但是我发现,在这种情况下,调整窗口大小和重新调整大小的速度(保持移动鼠标而不是键入其他键序列)的即时反馈所节省的时间超过了我动手的延迟。

评论


我完全不同意,我在Gnome-terminal中发现:set mouse = n就足够了,但是当需要在tmux内部运行时:set ttymouse = xterm2即可启用。

–the_velour_fog
2015年11月26日,下午3:17

绝对正确,我喜欢键盘,但是用鼠标会更好。

–calbertts
17年6月26日在15:28

哇,谢谢你引起我的注意!

– Charlie Gorichanaz
18年7月30日在19:55

完全同意“,但是我发现,在这种情况下,在调整窗口大小时立即获得反馈所节省的时间以及重新调整大小的速度(保持移动鼠标而不是键入其他键序列)的时间超过了动手的时间。 ”。

–纳瓦兹
19年4月9日在2:46

#4 楼

似乎没有人提到z{nr}<CR>。如果您使用:h ^w_,则会在其下面看到z{nr}<CR>,其效果与CTRL-W_相同。用于拼写检查,并添加到下面的.vimrc中,

" vertical resize, z0<CR> minimize, z= equalize, z99<CR> maximize.
nnoremap z= <C-w>=


然后更改窗口高度: 最小化当前窗口的高度

z99 最大化当前窗口的高度

z =使其全部相等


评论


z的这种用法有点不直观。我认为我们应该坚持使用C-W映射。很高兴知道那里有什么。

–klaus
18年5月21日在3:32

#5 楼

调整大小可以更快地进行分割:http://vim.wikia.com/wiki/Resize_splits_more_quickly

您可以使用:resize命令或其快捷方式:res来更改窗口的高度。要将高度更改为60行,请使用:
:resize 60

您还可以增量更改高度。要以5为增量更改高度,请使用:
:res +5 :res -5

您可以使用:vertical resize更改当前窗口的宽度。要将宽度更改为80列,请使用:
:vertical resize 80

您还可以增量更改宽度。要以5为增量更改宽度,请使用:
:vertical resize +5 :vertical resize -5

评论


除非将这些命令绑定到快捷键上,否则很难将Resize更快地拆分,除非已将这些命令绑定到快捷键上

–klaus
18年5月21日在3:34

不完全同意埃南的说法。我喜欢这个答案恕我直言

–craft
18/12/23在14:53

#6 楼

由于某些原因(可能是插件),标准C-w >(等)在我的~/.vimrc中不起作用。

" noremap <silent> <C-S-Left> :vertical resize +5<CR>
" noremap <silent> <C-S-Right> :vertical resize -5<CR>
noremap <silent> <C-S-Left> :vertical resize +1<CR>
noremap <silent> <C-S-Right> :vertical resize -1<CR>


评论


我只是尝试了此操作,并且在尝试C-S-Left时收到错误消息:“ E16:无效范围”。

–马格努斯
20年6月15日在14:11

@Magnus:只是看着我的〜/ .vimrc:如上。在Vim 8.2(Linux系统)上的:vs上测试:有效。也许您的行中有错误(或其他问题)? imgur.com/gallery/h7lGYhK

–维多利亚·斯图尔特(Victoria Stuart)
20年6月15日在15:14