(Change <tt> to <code>, perhaps also minor tweak.) |
|||
Line 27: | Line 27: | ||
==Comments== |
==Comments== |
||
+ | |||
+ | 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 |
||
+ | endw |
||
+ | exe max([min([n_lines, a:maxheight]), a:minheight]) . "wincmd _" |
||
+ | endfunction |
Revision as of 17:35, 23 June 2013
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
.
Comments
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 endw exe max([min([n_lines, a:maxheight]), a:minheight]) . "wincmd _" endfunction