将数据粘贴到 vim 的方法比使用粘贴模式更快?
Faster way to paste data into vim than with paste mode?
当我尝试将数百行或更多行粘贴到 Vim 时,即使在粘贴模式下,也比将相同的文本粘贴到 TextEdit 并将其另存为花费更长的时间(10 倍或更多?)一份文件。我推测 Vim 试图一次插入一个字符,这会减慢速度。当它是一个很大的粘贴时,我最终不得不用 TextEdit 保存文本,然后在 Vim 中打开它。有没有更快的方法来粘贴文本?
I would speculate that Vim is trying to insert one character at a time and that this is slowing things down.
这是正确的。考虑到终端的工作方式,它别无选择。在 GUI 模式下使用 GVim/MacVim,问题应该会消失。
或者,您可以使用终端命令来加快速度。例如,在 Mac 上,您可以执行
:r!pbpaste
将剪贴板中的任何内容粘贴到当前行下方。 Vim 从 pbpaste
命令而不是终端获取输入,因此它避免了终端一次一个字符的事情。如果您在 Linux,请参阅 What's like OSX's pbcopy for Linux。
另一种方法是查看数百行的来源。如果它来自另一个文件,将其加载到 Vim 缓冲区,然后使用 Vim 的本地复制粘贴(y
、p
)。如果它是命令的输出,请考虑先将命令的输出重定向到文件。如果是网页,curl
。剪贴板和复制粘贴并没有真正融入原始的基于终端的工作流程;管道和文件可以。
如果您的 Vim 编译时支持剪贴板 (:echo has('clipboard')
returns 1
),您可以简单地使用 "+p
或 "*p
。
如果不是(:echo has('clipboard')
returns 0
),给自己找一个合适的Vim。在 Mac OS X 上,MacVim 是必经之路。
当我尝试将数百行或更多行粘贴到 Vim 时,即使在粘贴模式下,也比将相同的文本粘贴到 TextEdit 并将其另存为花费更长的时间(10 倍或更多?)一份文件。我推测 Vim 试图一次插入一个字符,这会减慢速度。当它是一个很大的粘贴时,我最终不得不用 TextEdit 保存文本,然后在 Vim 中打开它。有没有更快的方法来粘贴文本?
I would speculate that Vim is trying to insert one character at a time and that this is slowing things down.
这是正确的。考虑到终端的工作方式,它别无选择。在 GUI 模式下使用 GVim/MacVim,问题应该会消失。
或者,您可以使用终端命令来加快速度。例如,在 Mac 上,您可以执行
:r!pbpaste
将剪贴板中的任何内容粘贴到当前行下方。 Vim 从 pbpaste
命令而不是终端获取输入,因此它避免了终端一次一个字符的事情。如果您在 Linux,请参阅 What's like OSX's pbcopy for Linux。
另一种方法是查看数百行的来源。如果它来自另一个文件,将其加载到 Vim 缓冲区,然后使用 Vim 的本地复制粘贴(y
、p
)。如果它是命令的输出,请考虑先将命令的输出重定向到文件。如果是网页,curl
。剪贴板和复制粘贴并没有真正融入原始的基于终端的工作流程;管道和文件可以。
如果您的 Vim 编译时支持剪贴板 (:echo has('clipboard')
returns 1
),您可以简单地使用 "+p
或 "*p
。
如果不是(:echo has('clipboard')
returns 0
),给自己找一个合适的Vim。在 Mac OS X 上,MacVim 是必经之路。