6

I select and copy a large block of plain text from some file (e.g. gedit). I run :set paste and then enter insert mode, and paste the text in using the right mouse-button menu. vim them uses 100% cpu for the next several minutes before successfully pasting my text in. The text is usually only a few pages, and takes less than a second to paste into other applications (gedit window, web window, etc). What is vim doing with all those clock cycles and how can I make this more efficient?

3 Answers 3

6

Based on a suggestion from the maintainer after filing a bug report, it seems this problem is caused by the syntax highlighter. Disabling syntax highlighting temporarily (:set syntax=off) fixes this, though having to do both that and :set paste, and then toggle each back again is rather annoying (yes, I know I could map the commands in .vimrc. It is still annoying). Pasting also runs faster in gvim than in vim. Not sure why.

So, current answer is "turn off syntax highlighting"...

4
  • Why don't you mark this as the correct answer?
    – ndemou
    Oct 21, 2014 at 20:30
  • Because I feel that Jim's answer is correct, this is a bug. There's no reason one should need to turn syntax highlighting off for a simple copy-paste to work smoothly like it does in gedit, etc. Just seems that the bug depends on the syntax highlighter extension, not base vim.
    – cboettig
    Oct 22, 2014 at 3:19
  • 1
    Who is then that cboettig that wrote: So, current answer is "turn off syntax highlighting"... :-). I'm being sarcastic of course but don't get me wrong, I'm just noting the contradiction. Anyway after investigating a bit more I thing that the evilsoup's answer is even more to the point. See also stackoverflow.com/questions/18258561/…
    – ndemou
    Oct 22, 2014 at 6:41
  • This may also be caused by foldexpr. When I'm pasting into markdown, just disabling syntax doesn't help. I've documented a fix in this answer: stackoverflow.com/a/61694190/3407728 May 9, 2020 at 9:02
6

The correct way to paste text in vim is with the p command (from normal mode).

To paste from the xclipboard (the 'middle-click' clipboard), you should use "*p. To paste from the Ctrl+v clipbaord, use "+p.

1
  • ...Unless your vim doesn't support ”+, like the Mac default version. (:
    – SilverWolf
    Jun 28, 2018 at 18:48
2

You should probably file a bug report against vim on this one.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .