Fandom

Vim Tips Wiki

Automatically fitting a quickfix window height

Redirected from VimTip1536

1,624pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

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

Also on Fandom

Random Wiki