29

我的 Macbook 昨天卡住了,当时我试图将 1200 行 80 个字符粘贴到 Vim。下载文件要快得多,而不是粘贴文本。

我认为这个问题可能是互联网运营商允许上传比下载慢的原因。

4

9 回答 9

45

如果你将它粘贴到终端窗口,Vim 会认为你是手动输入的,它会在你输入时尝试更新显示。您可以使用pbpasteandpbcopy命令访问剪贴板(在 OS X 上),因此您可以在 Vim 中执行此操作:

:read !pbpaste

或在外壳中:

bash$ pbpaste | vim -

如果您使用 GUI Vim,您将使用"*寄存器进行粘贴(这是上下文菜单的作用):

"*P   <- in normal mode

粘贴到终端窗口通常是个坏主意,pbpaste请尽可能尝试使用。

于 2009-02-01T22:25:37.183 回答
22
:read !pbpaste

如果您使用的是 Linux,请使用:

xsel --clipboard --output

或者:

xclip -selection clipboard -o

而不是 pbpaste。

于 2010-05-10T07:55:44.687 回答
6

那是“正常”。它很慢,因为重绘文本数千次很慢。

当您粘贴长线时,它会不断更新显示(我猜是因为 vim 如何处理文本,或者终端如何处理 vim 文本)。

我尝试在 vim 中粘贴文本(使用 iTerm),它有同样的问题,粘贴需要一段时间。我试过了:set paste:set nowrap还是一样慢。将线直接粘贴到终端中同样慢

使用您提到的 dpaste 链接,有一个纯文本链接,您可以 wget 并对其进行编辑:

curl http://dpaste.com/115362/plain/ | vim -
于 2009-02-01T22:07:15.393 回答
3

我喜欢像 Masi 建议的那样设置粘贴/不粘贴。在 .vimrc 中,您可以映射一些字符以切换粘贴(如果经常需要)。

IE

set pastetoggle=§
于 2011-11-08T07:25:47.703 回答
2

你试过粘贴模式吗?设置粘贴/设置不粘贴?

于 2009-02-01T18:41:56.010 回答
2

如果你 :syntax off 有时可以改进长单行文件的就地粘贴。一个例子是机器生成的 xml 文件。

您也可以在粘贴时禁用 vim 的重绘,看看 :he redraw ,但使用命令行的东西总是值得的

于 2009-02-01T22:44:00.890 回答
1

我不知道这是 Mac 问题还是其他问题,但我在 Vim 中粘贴这么多文本没有任何问题。我在 Windows 和 Linux 上都试过了,没有发现任何问题。

我已经在 Vim 中成功编辑了数百兆(日志文件)的文件(加载速度很慢,但是一旦读取文本,一切都非常快)。

于 2009-02-01T18:46:58.060 回答
1

但如果它在网络上,你应该尝试过:

:e http://link/to/file 

然后,如有必要,将其保存为本地文件。

如果由于重绘而变慢,请查看此选项:

            *'lazyredraw'* *'lz'* *'nolazyredraw'* *'nolz'*
'lazyredraw' 'lz'   boolean (default off)
            global
            {not in Vi}
    When this option is set, the screen will not be redrawn while
    executing macros, registers and other commands that have not been
    typed.  Also, updating the window title is postponed.  To force an
    update use |:redraw|.

如果它是本地文件,则不需要粘贴:尝试

:read file 

反而。

于 2009-02-01T21:51:01.433 回答
0

如果您使用 Apple Terminal,请尝试使用其他终端,例如 iTerm。有时,“内置”终端对于常见任务并没有真正的反应。不知道为什么...

于 2009-02-01T18:59:59.703 回答