On 9/7/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:
Yakov Lerner wrote: > I see several problems (that I can't explain) in the vim "refresh"-loop > watching the growing file (a-la 'tail -f'). Vim commands are below. > > Problem #1: There is unexpected output on the bottom line > (lines of the file is echoed on the bottom line). Why ? > Problem #2: When you vertically resize the xterm window, > vim screen is corrupted and never repainted properly. > Problem #3: Sometimes, when I press Ctrl-C to quit the loop, > vim is in ex mode and responds 'Type :quit<Enter> > to exit Vim' > Why ? > Problem #4: Since vim repaints properly when waiting for chars, I'd like > to put getchartimeout(1000) in place of sleep 1. Do we > have getchar() with timeout ? > > To see the demonstration: > > 1. In one window, create growing file using these shell command: > > % while :; do date >>1; sleep 1; done > > 2. In another window: > > vim -u NONE ~/xxx > :set nolz | while 1 | e | redraw | $ | sleep 1 | endw > > " notice unexpected output on the bottom line > " try to resize screen. It is not restored properly. > " Press Ctrl-C to quit. Sometimes, vim quits the loop properly. > " Sometime, vim does not quit the loop, stays in ex mode. > " (Type :quit<Enter> to exit Vim) > > (This command sequence must be not perfect but it demonstrates the problem). I can see the extra output on the bottom line. I'll look into this later. How do you see the problem with the screen resize?
Originally, &lines is around 50. Screenshot before resize is http://www.wikiupload.com/download_page.php?id=16428 (before-resize.gif). This is normal screen. Here is how I resize: I resize screen height down to 10. Then I resize height back to approximately original height. Here is screenshot after resize (I also give it several seconds of time, but it never really recovers): http://www.wikiupload.com/download_page.php?id=16429 (after-resize.gif). It's different every time, but always screwed. Yakov