Hi Dmytro!

On Mo, 03 Aug 2015, Dmytro Konstantinov wrote:

> After a bit of digging around we managed to confirm that it is, indeed, a bug 
> in vim. It can be replicated with `vim +"source [filename]"` using the 
> following two tests:
> 
> 1. [OK] The following test produces the expected result: substitution change 
> is joined to the previous change in the buffer (addition of line 3). Upon 
> undo, the cursor position is correctly restored to the second line in the 
> buffer.
> 
>     set undolevels=10
> 
>     normal ggiline one is bull of aaaa
>     set undolevels=10 " used to break a change into separate undo blocks
>     normal Goline two is full of bbbb
>     set undolevels=10 " used to break a change into separate undo blocks
>     normal Goline three is full of cccc
>     set undolevels=10 " used to break a change into separate undo blocks
> 
>     undojoin
>     keepjumps %s/aaaa/zzzz/
>     normal u
> 
> 2. [ERR] The following test produces an unexpected result: substitution 
> change is joined to the previous change in the buffer (addition of line 4). 
> Upon undo, the cursor position is incorrectly restored to the first line in 
> the buffer.
> 
>     set undolevels=10
> 
>     normal ggiline one is bull of aaaa
>     set undolevels=10 " used to break a change into separate undo blocks
>     normal Goline two is full of bbbb
>     set undolevels=10 " used to break a change into separate undo blocks
>     normal Goline three is full of cccc
>     set undolevels=10 " used to break a change into separate undo blocks
>     normal Goline four is full of aaaa's again
>     set undolevels=10 " used to break a change into separate undo blocks
> 
>     undojoin
>     keepjumps %s/aaaa/zzzz/
>     normal u
> 
> It appears that the bug is originating around line 2711 in undo.c Sorry, 
> can't be more specific, C is not my strong point, so I'm just summarising 
> what @doliver found so far.
> 
> A full description of what we've found is on StackOverflow:
> 
>     
> http://stackoverflow.com/questions/31548025/vim-undo-why-does-the-cursor-jump-to-the-wrong-position-when-undoing-undojoin

I am nut sure, I understand fully. How do you suggest to change the 
cursor positioning?

Best,
Christian
-- 
Das Wort Gottesdienst sollte verlegt und nicht mehr vom Kirchengehen,
sondern bloß von guten Handlungen gebraucht werden.
                -- Georg Christoph Lichtenberg (Moralische Bemerkungen)

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