2009-02-01 160 views

回答

34

如果你把它粘贴到终端窗口,Vim认为你是用手输入的,它会尝试更新显示器。您可以使用pbpastepbcopy命令来访问你的剪贴板(在OS X),所以你可以做到这一点的Vim的:

:read !pbpaste 

或在shell:

bash$ pbpaste | vim - 

如果您正在使用GUI Vim中,你可以使用"*寄存器粘贴(这是上下文菜单做什么):

"*P <- in normal mode 

粘贴到终端窗口通常是一个坏主意,尽量在可以的地方使用pbpaste

2

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

+0

没有变化:这是我的贴:http://dpaste.com/115362/ – 2009-02-01 19:23:12

1

我不知道这是Mac问题还是其他问题,但我在Vim中粘贴这些文本没有任何问题。我曾尝试过在Windows和Linux上,并没有看到任何问题。

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

+0

这不是一个MAC问题。 Ubuntu也是一样的问题。 – 2009-02-01 20:55:17

+0

请看,问题。我澄清了它。 – 2009-02-01 20:56:36

+0

问题似乎在粘贴没有输入或空格的文本。 – 2009-02-01 20:59:33

0

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

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 

代替。

6

这是“正常”。这很慢,因为重绘数千次文本很慢。当你粘贴长行,它不断更新显示(因为vim如何处理文本,或者终端如何处理vim文本,我猜)。

我尝试在vim中粘贴文本(使用iTerm),它有相同的问题,它需要一段时间粘贴。我试过:set paste:set nowrap,仍然很慢。粘贴线直入终端同样是缓慢的

随着你提到的dpaste链接,有一个纯文本链接,你可以只wget和编辑:

curl http://dpaste.com/115362/plain/ | vim - 
2

如果你:句法关闭,你有时可以改进一个长的单行文件粘贴。一个例子是一台机器生成的xml文件。

你也许可以在粘贴的时候禁用vim的重绘,看看:他重绘,但总是值得使用命令行的东西如果你重复这个过程或类似的东西,你总是可以用脚本/ vim宏自动化它

17
:read !pbpaste 

如果您使用的是Linux使用:

xsel --clipboard --output 

或:

xclip -selection clipboard -o 

而不是pbpaste。

3

我赞成像Masi建议的粘贴/ nopaste。 在.vimrc中,您可以映射某些字符以切换粘贴(如果经常需要)。

set pastetoggle=§