Hi!

As you've probably all noticed the completion menu flickers when you
move through the items rapidly.  Why is this?  Is it really necessary
to redraw the whole completion menu when it really only should require
redrawing the item previously selected and the item selected now [1]?

Anyway, would this be possible to implement?

Also, here's a set of mappings that make the digits move their value
number of items down the completion list (if displayed):

for digit in [1, 2, 3, 4, 5, 6, 8, 9]
 execute 'inoremap <silent> ' . digit . ' <C-R>=pumvisible() ? "' .
repeat('\<lt>C-N>', digit) . '" : "' . digit . '"<CR>'
endfor

(I guess this could be extended to include -n, for 1 <= n <= 9, which
would move n number of items upward.  Any takers?)

It flickers like mad, but at least it goes a lot faster than holding
down CTRL-N or CTRL-P.

 nikolai

[1] Excepting the case where one begins to scroll in the menu, when
all items need to be redrawn, as they move up or down one step - which
leads to a second question, wouldn't it be a lot more economical to
scroll like half a menu or something, so that scrolling wouldn't
require so many redraws?  Or at least utilize the terminal codes that
enable scrolling in a buffer to be done with only redrawing the first
or last line when scrolling by a single line in a buffer?

Reply via email to