将数据粘贴到vim的速度比粘贴模式更快?

时间:2016-11-22 06:18:39

标签: vim copy-paste

当我尝试将数百行或更多行粘贴到Vim中时,即使在粘贴模式下,也需要花费更长时间(10倍或更多?)而不是将相同的文本粘贴到TextEdit中并将其另存为文件。我推测Vim正试图一次插入一个字符,这会减慢速度。如果它是一个非常大的粘贴,我最终必须使用TextEdit保存文本,然后在Vim中打开它。是否有更快的方式粘贴文本?

2 个答案:

答案 0 :(得分:6)

如果你的Vim是使用剪贴板支持编译的(:echo has('clipboard')返回1),你只需使用"+p"*p

如果不是(:echo has('clipboard')返回0),请给自己一个合适的Vim。在Mac OS X上,MacVim是最佳选择。

答案 1 :(得分:5)

  

我会推测Vim正在尝试一次插入一个字符,这会减慢速度。

这是对的。鉴于终端如何工作,它不能采取任何其他方式。在GUI模式下使用GVim / MacVim,问题应该消失。

或者,您可以使用终端命令来加快速度。例如,在Mac上,您可以执行

:r!pbpaste

粘贴当前行下方的剪贴板中的内容。 Vim从pbpaste命令而不是终端获取其输入,因此它避免了终端的一个字符一次性的事情。如果您使用的是Linux,请参阅What's like OSX's pbcopy for Linux

另一种方法是查看数百条线路的来源。如果它来自另一个文件,将其加载到Vim缓冲区,然后使用Vim的本机复制粘贴(yp)。如果它是命令的输出,请考虑首先将命令的输出重定向到文件。如果是网页,请curl。剪贴板和复制粘贴并没有真正体现在原始的基于终端的工作流程中;管道和文件。