On 2014-05-30, Christian Brabandt wrote:
> Hi Praful!
>
> On Do, 29 Mai 2014, Praful Kapadia wrote:
>
> > I have had an annoying issue with gvim 7.4, with patches 1-307.
> > If I open a large file (e.g. containing 200,000 lines) and use
> > the global command to delete lines, the operation takes a very
> > long time on Windows if clipboard has been set to unnamed. I'm
> > assuming it's the constant copying of deleted lines to the
> > Windows clipboard that's slowing gvim down.
[...]
> This is a known issue for windows (see :h todo.txt and search for
> :g/test/d)
I have seen a related problem, if not the same problem, running vim
7.4.283 in an xterm on Fedora 17.
While editing a file of about 50k lines, I put the cursor on a line
a few tens of lines from the bottom of the file and executed dgg.
When I then tried moving the cursor a few lines lower, it moved in
response to the first few j commands, then vim locked up for about 5
minutes.
After reading this thread, I tried two workarounds, both of which
worked to keep the cursor responsive.
1. "_dgg
2. :set clipboard&
dgg
My 'clipboard' is normally set to
unnamed,autoselect,exclude:cons\|linux
Also, while vim and the xterm are running on Fedora 17, the X server
is NoMachine (NX). The NoMachine client is running on Windows 7, so
anything going to the X clipboard is also deposited in a Windows
clipboard. I don't know what effect that has on the problem, e.g.,
whether the X client must wait for data to be copied to the Windows
clipboard.
For what it's worth, I attached gdb to vim process and found that
while stuck, a backtrace looked like this.
(gdb) bt
#0 0x0000003dbfae8ea4 in poll () from /lib64/libc.so.6
#1 0x0000003dcb22d428 in _XtWaitForSomething () from /lib64/libXt.so.6
#2 0x0000003dcb22e987 in XtAppNextEvent () from /lib64/libXt.so.6
#3 0x0000000000544a52 in xterm_update () at os_unix.c:7068
#4 0x00000000005426be in RealWaitForChar (fd=0, msec=-1,
check_for_gpm=0x7fff63686104) at os_unix.c:5438
#5 0x00000000005423e9 in WaitForChar (msec=-1) at os_unix.c:5139
#6 0x000000000053e273 in mch_inchar (buf=0x89bca8 "", maxlen=64, wtime=-1,
tb_change_cnt=251) at os_unix.c:450
#7 0x00000000005cf494 in ui_inchar (buf=0x89bca8 "", maxlen=64, wtime=-1,
tb_change_cnt=251) at ui.c:199
#8 0x00000000004c682f in inchar (buf=0x89bca8 "", maxlen=192,
wait_time=-1, tb_change_cnt=251) at getchar.c:3082
#9 0x00000000004c6473 in vgetorpeek (advance=1) at getchar.c:2857
#10 0x00000000004c47bd in vgetc () at getchar.c:1627
#11 0x00000000004c4cf1 in safe_vgetc () at getchar.c:1832
#12 0x0000000000512a82 in normal_cmd (oap=0x7fff636864e0, toplevel=1) at
normal.c:638
#13 0x0000000000612681 in main_loop (cmdwin=0, noexmode=0) at main.c:1325
#14 0x00000000006120d0 in main (argc=6, argv=0x7fff636867f8) at main.c:1025
> Here is an experimental patch, that resets the clipboard option for :g
> command, when there are many matches (>100). Note: I haven't tested it.
If this is the same problem, then fixing it for :g/teset/d doesn't
address the other cases of deletion such as dgg.
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.