Vim Tips Wiki
Register
(reworked the tip)
(Made the shortcut code more accurate by changing uppercase W to lowercase w. Ordered by importance: resize to a set width/height in a single command versus incrementally resizing with annoying shortcuts.)
Line 5: Line 5:
 
|created=April 26, 2006
 
|created=April 26, 2006
 
|complexity=basic
 
|complexity=basic
|author=Robert
+
|author=Robert & Bill
|version=6.0
+
|version=7.0
 
|rating=4/4
 
|rating=4/4
 
|category1=Split windows
 
|category1=Split windows
Line 14: Line 14:
 
This tip is about how to resize {{help|prefix=no|usr_08.txt|Windows}} efficiently.
 
This tip is about how to resize {{help|prefix=no|usr_08.txt|Windows}} efficiently.
   
You can use <code>Ctrl-W +</code> and <code>Ctrl-W -</code> to resize a split window. For changing the width of a window, use <code>Ctrl-W &gt;</code> to increase the window size by one, while <code>Ctrl-W &lt;</code> decreases the window width by one. Those keys also accept a count, so that you can change the window size in larger steps, e.g. <code>10 Ctrl-W+</code> increases the window size by 10 lines.
+
You can use the <code>:resize</code> command or its shortcut <code>:res</code> to change the height of the window. To change the height to 60 rows, use:
To resize all Windows to the same size, you can use <code>CTRL-W =</code> and to increase a window to its maximum size, use <code>Ctrl-W _</code>.
 
 
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:
 
 
<pre>
 
<pre>
  +
:resize 60
nnoremap <silent> <Leader>+ :exe "resize " . (winheight(0) * 3/2)<CR>
 
  +
</pre>
nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>
 
  +
You can also change the height in increments. To change the height by increments of 5, use:
  +
<pre>
 
:res +5
 
:res -5
 
</pre>
 
</pre>
   
  +
Alternatively you can use the <code>:resize</code> command to change the height of the window, to change the window width, use the <code>:vertical </code> modifier. So to resize by 10 lines, use:
+
You can use <code>:vertical resize</code> to change the width of the current window. To change the width to 80 columns, use:
 
<pre>
 
<pre>
  +
:vertical resize 80
:res +10
 
:res -10
 
 
</pre>
 
</pre>
  +
You can also change the width in increments. To change the width by increments of 5, use:
And to resize to a size of 20 use this:
 
 
<pre>
 
<pre>
  +
:vertical resize +5
:res 20
 
:vertical resize 20
+
:vertical resize -5
 
</pre>
 
</pre>
   
  +
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.
 
  +
For a '''split''' window: You can use <code>Ctrl-w +</code> and <code>Ctrl-w -</code> to resize the height of the current window by a single row. For a '''vsplit''' window: You can use <code>Ctrl-w &gt;</code> and <code>Ctrl-w &lt;</code> 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. <code>10 Ctrl-w +</code> increases the window size by 10 lines]
  +
  +
To resize all windows to equal dimensions based on their splits, you can use <code>Ctrl-w =</code>.
  +
 
To increase a window to its maximum size, use <code>Ctrl-w _</code>.
  +
 
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:
  +
<pre>
 
nnoremap <silent> <Leader>+ :exe "resize " . (winheight(0) * 3/2)<CR>
 
nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>
  +
</pre>
  +
  +
 
In Gvim, 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.
   
 
==See also==
 
==See also==

Revision as of 00:30, 7 March 2013

Tip 1215 Printable Monobook Previous Next

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:

:resize 60

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 Ctrl-w =.

To increase a window to its maximum size, use Ctrl-w _.

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, 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.

See also

Plugins

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:

Comments