vim paste bug with compatible and showmatch turned on (seen for at least a year)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

vim paste bug with compatible and showmatch turned on (seen for at least a year)

Cygwin list mailing list
64-bit Cygwin, Win10, nothing special about my installation.


Start vim cleanly inside a mintty window running bash (updated my installation today):
/usr/bin/vim --clean -u /dev/nul test.txt

Insert the following string:
"pIppp"

Copy that string into the paste buffer using the mouse and ctrl-insert.
Insert the following string on the next line:
"(char *) "

Then press shift-insert to paste. You should get:
"(char *) pIppp"

This is normal behavior.

Press escape and then ":set sm cp" and press enter  Vim is now in compatible mode and showmatch is turned on.

Insert the following string on the next line:
"(char *) "

Then press shift-insert to paste.  You should get the same string.  However, I get:
"Ppp(char *)"

It seems like at least an ESC character is inserted, so the mode gets changed from insert to command.  This can be really destructive if you have a long buffer.

The showmatch mechanism is required to reproduce this bug.

Is this bug a Cygwin, vim, mintty, or something else bug?

Thanks,Kevin



PS Yes, I use compatible mode because I am that old.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

=?UTF-8?b?Y3lnY2hlY2sub3V0?= (66K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: vim paste bug with compatible and showmatch turned on (seen for at least a year)

Takashi Yano
On Mon, 3 Feb 2020 21:41:20 +0000 (UTC)
"Kevin Schnitzius via cygwin" wrote:

> 64-bit Cygwin, Win10, nothing special about my installation.
>
>
> Start vim cleanly inside a mintty window running bash (updated my installation today):
> /usr/bin/vim --clean -u /dev/nul test.txt
>
> Insert the following string:
> "pIppp"
>
> Copy that string into the paste buffer using the mouse and ctrl-insert.
> Insert the following string on the next line:
> "(char *) "
>
> Then press shift-insert to paste. You should get:
> "(char *) pIppp"
>
> This is normal behavior.
>
> Press escape and then ":set sm cp" and press enter  Vim is now in compatible mode and showmatch is turned on.
>
> Insert the following string on the next line:
> "(char *) "
>
> Then press shift-insert to paste.  You should get the same string.  However, I get:
> "Ppp(char *)"
>
> It seems like at least an ESC character is inserted, so the mode gets changed from insert to command.  This can be really destructive if you have a long buffer.
>
> The showmatch mechanism is required to reproduce this bug.
>
> Is this bug a Cygwin, vim, mintty, or something else bug?

This seems to be a upstream bug of vim. I tested several
version of vim and results are as follows.

8.0.707  in debian stretch OK
8.0.1567 in cygwin NG
8.1.1240 in cygwin NG
8.1.1401 in debian buster NG
8.1.1551 in debian buster (local build) NG
8.1.1772 in cygwin NG
8.2.100  in cygwin (local build) NG

--
Takashi Yano <[hidden email]>

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple