Vim Tips Wiki

Automatically fitting a quickfix window height

Revision as of 17:35, June 23, 2013 by (Talk)

1,619pages on
this wiki
Tip 1536 Printable Monobook Previous Next

created 2007 · complexity basic · author AOYAMA Shotaro · version 6.0

When I do :cw, a quickfix window opens with a 10-line height, even when the number of errors is 1 or 2. I think it's a waste of window space.

So I wrote the following code in my vimrc. With it, a quickfix window height is automatically adjusted to fit its contents (maximum 10 lines).

au FileType qf call AdjustWindowHeight(3, 10)
function! AdjustWindowHeight(minheight, maxheight)
  exe max([min([line("$"), a:maxheight]), a:minheight]) . "wincmd _"

Of course, this function can be applied to other windows besides the quickfix window.

If you feel it's too tight, you may want to replace line("$") with line("$")+1.


For long lines

   function! AdjustWindowHeight(minheight, maxheight)
       let l = 1
       let n_lines = 0
       let w_width = winwidth(0)
       while l <= line('$')
           " number to float for division
           let l_len = strlen(getline(l)) + 0.0
           let line_width = l_len/w_width
           let n_lines += float2nr(ceil(line_width))
           let l += 1
       exe max([min([n_lines, a:maxheight]), a:minheight]) . "wincmd _"

Around Wikia's network

Random Wiki