It seems like I forgot to reply to this message.

On Do, 06 Aug 2015, Gary Johnson wrote:

> 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.

Okay, let me clarify the difference. Take a window with large enough 
number of rows, I used 40 Lines with your provided commandline.

$ ./vim -Nd -u NONE -c '31' <(seq 30; seq 61 90) <(seq 90)

Current behaviour of Vim, once you pressed 'zt' on Line with the 61 in 
it, the window will look like this:

Current behaviour:
,----[left Vim window]
| 30
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| [many more]
| --------------------------------------
| 61
| 62
| ...
`----

Original patch:
,----[left Vim window]
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| --------------------------------------
| [many more]
| --------------------------------------
| 61
| 62
| ...
`----

Remove the comment in move.c
/* i = diff_check_fill(curwin, curwin->w_cursor.lnum); */
,----[left Vim window]
| 61
| 62
| ...
`----

So whatever seems to be suited best, should be used. I don't really 
care, although I slightly prefer the last behaviour. So I left the 
comment with a note inside the patch. Bram can decide.

I think, this should clarify, right?

Best,
Christian
-- 
Der Mensch kann nur mit seinesgleichen leben und auch mit denen 
nicht; denn er kann auf die Länge nicht leiden, dass ihm jemand 
gleich sei.
                -- Goethe, Maximen und Reflektionen, Nr. 797

-- 
-- 
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