Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How do you increase or decrease the height or width of a vim buffer in a way so that when you hold down the key combo, the buffer size constantly changes?

I know CTRL W < works but it moves it one unit at a time. I am looking for a way that when you do CTRL W < and hold down the < that VIM changes the buffer's width fluidly(constantly) until you let go of the <.

share|improve this question
1  
You could use . to repeat the last action. – Phoshi Dec 6 '10 at 20:22
2  
@Phoshi: I think that's just for editing actions. In fact, help . says "Does not repeat a command-line command." – Dennis Williamson Dec 6 '10 at 21:22
    
@Dennis; Oh, looks like you're right, my apologies! – Phoshi Dec 6 '10 at 22:08
    
or could you CTRL W any_number < – elmonkeylp Mar 27 '15 at 21:14
up vote 5 down vote accepted

Try these:

:nmap ^[> :vertical res +1^M
:nmap ^[< :vertical res -1^M

To input the ^[, press Ctrl-v then Esc. To input the ^M, press Ctrl-v then Enter.

As suggested by Heptite in a comment, you can use key-notation instead of literal characters:

:nmap <Esc>> :vertical res +1<Enter>
:nmap <Esc>< :vertical res -1<Enter>

Results in the same mapping as the example at the top.

Now you can hold down Alt-Shift-> to smoothly increase the width or Alt-Shift-< to smoothly increase it. It feels kind of weird using it in the right-hand window to me, because I think that I'm moving the separator left and right, but that's not what's happening.

For changing the size of horizontally split windows:

:nmap ^[+ :res +1^M
:nmap ^[- :res -1^M

These are the regular plus and minus keys rather than the ones on the keypad. On my US keyboard, in addition to Alt, I hold Shift for +, but no Shift for -.

share|improve this answer
3  
You may use the string <esc> (with the angle brackets) in place of hard-coding escape characters. – Heptite Dec 6 '10 at 23:10
    
I tried this, but it only work one time, and then I have to press escape and then it works for one time only. – Amit Yadav Jun 15 at 9:50
    
@AmitYadav: It works for me. See my answer for a small typo correction and some clarification. – Dennis Williamson Jun 15 at 16:12

You can also use 10 ctrl-w < or 10 ctrl-w > to change it by 10 units.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .