当我尝试将数百行或更多行粘贴到Vim中时,即使在粘贴模式下,也需要花费更长时间(10倍或更多?)而不是将相同的文本粘贴到TextEdit中并将其另存为文件。我推测Vim正试图一次插入一个字符,这会减慢速度。如果它是一个非常大的粘贴,我最终必须使用TextEdit保存文本,然后在Vim中打开它。是否有更快的方式粘贴文本?
答案 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的本机复制粘贴(y
,p
)。如果它是命令的输出,请考虑首先将命令的输出重定向到文件。如果是网页,请curl
。剪贴板和复制粘贴并没有真正体现在原始的基于终端的工作流程中;管道和文件。