Wikia

Vim Tips Wiki

Automatically fitting a quickfix window height

Talk0
1,612pages on
this wiki
Revision as of 17:46, June 23, 2013 by Juanpabloaj (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 _"
endfunction

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.

CommentsEdit

For long lines, consider a long line as many lines

   au FileType qf call AdjustWindowHeight(3, 10)
   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
       endw
       exe max([min([n_lines, a:maxheight]), a:minheight]) . "wincmd _"
   endfunction
   " https://gist.github.com/juanpabloaj/5845848

Around Wikia's network

Random Wiki