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.