如何在Vim中增加垂直分割窗口的大小


316

:vsplit(简称:vs:)垂直分割Vim视口。:30vs拆分视口,使新窗口宽30个字符。创建此30个字符的窗口后,如何将其大小更改为31或29?

使用水平窗口时Ctrl- W +将行数增加一。将列增加一的等效命令是什么?


15
您也可以按Ctrl-W 5+将窗口高度增加5(或任何数字)。Ctrl-W 5-也一样
AlexMA

1
:h ^w查看窗口命令列表。:h ^ww看看普通命令的帮助Ctrl-w w
qeatzy

Answers:




105

如果还需要调整HORIZONTAL SPLIT的大小:所有分割
的命令都相同,只是参数会更改:

- + 代替 < >

示例:将水平尺寸
减小 10列

:10winc -

水平尺寸增加 30列

:30winc +

或在普通模式下:

水平分割

10 CTRL+w -

30 CTRL+w +

垂直分割

10 CTRL+ w <(减少)

30 CTRL+ w >(增加)


3
+1。只是一个小小的评论:根据:he winc ctrl+w [count] {arg}作品……
TrueY 2014年

45

我这边的另一个提示:

为了将窗口的宽度设置为正好等于80列,请使用

80 CTRL+W |

为了将其设置为最大宽度,只需省略前面的数字:

CTRL+W |

6
高度:此参数的对应项是用于调整高度的“ _”(shift +-)。实际上,从视觉上很容易记住,因为| 从字面上看是垂直分割线,而_在字面上是水平分割线。示例:15 CTRL + W _将当前拆分高度设置为15行。另一种记住方式:绝对大小需要SHIFT,因为两者 和_需要按下换档
freeo 2014年

29

我将这些映射到我的.gvimrc文件中,以让我按Command- [箭头]移动当前窗口的高度和宽度:

" resize current buffer by +/- 5 
nnoremap <D-left> :vertical resize -5<cr>
nnoremap <D-down> :resize +5<cr>
nnoremap <D-up> :resize -5<cr>
nnoremap <D-right> :vertical resize +5<cr>

对于MacVim,您必须将它们放入.gvimrc(而不是.vimrc)中,否则它们将被系统.gvimrc覆盖


1
最后,<cr>是什么意思?有没有看到,在nnoremap前

2
它是“回车”的简称,基本上等同于用户点击回车
Ted Naleid 2014年

9

同样,我在代码中使用以下内容.vimrc让我遍历拆分,将要移动的拆分自动扩展到其完整大小,并将其余所有拆分为最小高度或最小宽度:

" Switch between window splits using big J or K and expand the split to its 
" full size. 
" 
" Move vertically in the window through the horizontal splits... 
map <C-J> <C-w>j<C-w>_ 
map <C-K> <C-w>k<C-w>_ 

" Move horizontally in the window through the vertical splits... 
map <C-H> <C-w>h<C-w>\| 
map <C-L> <C-w>l<C-w>\| 

4

我通过在.vimrc中映射以下内容来使用数字来调整大小

nmap 7 :res +2<CR> " increase pane by 2 
nmap 8 :res -2<CR> " decrease pane by 2
nmap 9 :vertical res +2<CR> " vertical increase pane by 2
nmap 0 :vertical res -2<CR> " vertical decrease pane by 2

我想你的意思nmap 9 :vertical res +2<CR>,而不是-2vertical increase
扎克

这确实是一个很好的绑定。谢谢!
LeOn-韩立

3

到目前为止,这是我正在使用的:

nnoremap <silent> <Leader>= :exe "resize " . (winheight(0) * 3/2)<CR>
nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>
nnoremap <silent> <Leader>0 :exe "vertical resize " . (winwidth(0) * 3/2)<CR>
nnoremap <silent> <Leader>9 :exe "vertical resize " . (winwidth(0) * 2/3)<CR>

1

我为此使用以下命令:

set lines=50     " For increasing the height to 50 lines (vertical)
set columns=200  " For increasing the width to 200 columns (horizontal)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.