created April 26, 2006 · complexity basic · author Robert & Bill · version 7.0
This tip is about how to resize Windows efficiently.
You can use the
:resize command or its shortcut
:res to change the height of the window. To change the height to 60 rows, use:
You can also change the height in increments. To change the height by increments of 5, use:
:res +5 :res -5
You can use
:vertical resize to change the width of the current window. To change the width to 80 columns, use:
:vertical resize 80
You can also change the width in increments. To change the width by increments of 5, use:
:vertical resize +5 :vertical resize -5
For a split window: You can use
Ctrl-w + and
Ctrl-w - to resize the height of the current window by a single row. For a vsplit window: You can use
Ctrl-w > and
Ctrl-w < to resize the width of the current window by a single column. Additionally, these key combinations accept a count prefix so that you can change the window size in larger steps. [e.g.
10 Ctrl-w + increases the window size by 10 lines]
To resize all windows to equal dimensions based on their splits, you can use
To increase a window to its maximum size, use
To resize in different steps, you can create maps that will adjust the window size differently. For example to increase the window size by a factor of 1.5 and decrease the window size by 0.67, you can map this:
nnoremap <silent> <Leader>+ :exe "resize " . (winheight(0) * 3/2)<CR> nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>
In Gvim and vim in terminals with mouse support, it is also possible to use the mouse to resize a window. Simply grab the statusline at the window border and drag it into the desired direction.
The following plugins allow to define submodes, that make it possible to use e.g.
Ctrl-W + to increase the window size and keep on increasing as long as you keep '+' pressed: