On 2015-08-06, Christian Brabandt wrote:
> Hi Gary!
> 
> On Mi, 05 Aug 2015, Gary Johnson wrote:
> 
> > The command zt, which scrolls the current line to the top of the
> > screen, does not always work in a window that's in diff mode.
> > Depending on the line that the cursor is on, it either works
> > correctly, scrolls the current line part way up the screen, or has
> > no effect at all.
> > 
> > Here is an example, using terminal vim in a 24-line terminal (xterm)
> > window.
> > 
> >     $ vimdiff -N -u NONE <(seq 30; seq 61 90) <(seq 90)
> >     31G
> > 
> > The cursor is on the line with the text "61" and at the bottom of
> > the screen.  Type
> > 
> >     zt
> > 
> > The left window now looks like this, with cursor still on the "61"
> > line.  This is not the behavior I would expect and seems wrong.
> > 
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       --------------------------------------
> >       61                                    
> >       62                                    
> >       63                                    
> >       64                                    
> >       65                                    
> >       66                                    
> >     + +--   24 lines: 67--------------------
> > 
> > Type
> > 
> >     zt
> > 
> > again.  There is no change.  Now move the cursor to the line with
> > "62" and repeat:
> > 
> >     j
> >     zt
> > 
> > There is still no change to the window.  Now move the cursor to the
> > next line, containing "63" and repeat:
> > 
> >     j
> >     zt
> > 
> > This time, that line is put at the top of the screen as one would
> > expect.  The window now looks like this, as I would expect.
> > 
> >       63                                    
> >       64                                    
> >       65                                    
> >       66                                    
> >     + +--   24 lines: 67--------------------
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> >       ~                                     
> > 
> > Moving the cursor up a line with k redraws the screen to look as in
> > the first illustration above.  This also seems wrong.
> > 
> > I am using Vim 7.4.808 in an xterm on a system running Fedora 17
> > Linux.  FWIW, the behavior is the same in 7.3.444, so this is not
> > new.
> 
> Here is a patch.

Thanks for the patch, but it doesn't seem to have any effect at all
on the behavior reported above.

> Problem is, that the number of filler lines is added twice to the number 
> of physical lines, which seems to be the case since Vim 7.0
> 
> A minor open question remains, whether the filler lines should be 
> displayed above or not. I have left a comment in the code, whatever 
> seems to be right, can be adjusted.

I don't understand the question.  If the cursor is on line N and I
type zt, I want the screen to be redrawn with line N at the top.  It
doesn't matter where any filler lines are.  If I want a line of
filler lines as context I'll scroll down a line.  The need or desire
for context is no different in diff mode than in non-diff mode.

> FWIW: I would prefer to not display the filler lines above, so the 
> commented line should be uncommented, but the current implementation 
> explicitly states, that they should belong to the context and therefore 
> shown, so this is what the current patch does.

I haven't tried uncommenting that line.  I may do that after the
other issue with the patch is resolved.

Regards,
Gary

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui