昨天我的Macbook卡住了,当时我试图将1200行80个字符粘贴到Vim。下载文件要快得多,而不要粘贴文本。为什么在Vim的插入模式下粘贴很长的一行很慢?
我认为这个问题可能是原因,为什么互联网运营商允许更慢的上传比下载。
昨天我的Macbook卡住了,当时我试图将1200行80个字符粘贴到Vim。下载文件要快得多,而不要粘贴文本。为什么在Vim的插入模式下粘贴很长的一行很慢?
我认为这个问题可能是原因,为什么互联网运营商允许更慢的上传比下载。
如果你把它粘贴到终端窗口,Vim认为你是用手输入的,它会尝试更新显示器。您可以使用pbpaste
和pbcopy
命令来访问你的剪贴板(在OS X),所以你可以做到这一点的Vim的:
:read !pbpaste
或在shell:
bash$ pbpaste | vim -
如果您正在使用GUI Vim中,你可以使用"*
寄存器粘贴(这是上下文菜单做什么):
"*P <- in normal mode
粘贴到终端窗口通常是一个坏主意,尽量在可以的地方使用pbpaste
。
你试过粘贴模式吗?设置粘贴/设置nopaste?
我不知道这是Mac问题还是其他问题,但我在Vim中粘贴这些文本没有任何问题。我曾尝试过在Windows和Linux上,并没有看到任何问题。
我已经在Vim中成功编辑了几百个megs(日志文件)的文件(加载速度很慢,但是一旦文本被读取,一切都很快)。
这不是一个MAC问题。 Ubuntu也是一样的问题。 – 2009-02-01 20:55:17
请看,问题。我澄清了它。 – 2009-02-01 20:56:36
问题似乎在粘贴没有输入或空格的文本。 – 2009-02-01 20:59:33
如果您使用Apple终端,请尝试其他终端,如iTerm。 有时候,“内置”终端对于常见任务并没有真正的反应。不知道为什么......
但如果它是在网络上,你应该尝试:
: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
代替。
这是“正常”。这很慢,因为重绘数千次文本很慢。当你粘贴长行,它不断更新显示(因为vim如何处理文本,或者终端如何处理vim文本,我猜)。
我尝试在vim中粘贴文本(使用iTerm),它有相同的问题,它需要一段时间粘贴。我试过:set paste
和:set nowrap
,仍然很慢。粘贴线直入终端同样是缓慢的
随着你提到的dpaste链接,有一个纯文本链接,你可以只wget和编辑:
curl http://dpaste.com/115362/plain/ | vim -
如果你:句法关闭,你有时可以改进一个长的单行文件粘贴。一个例子是一台机器生成的xml文件。
你也许可以在粘贴的时候禁用vim的重绘,看看:他重绘,但总是值得使用命令行的东西如果你重复这个过程或类似的东西,你总是可以用脚本/ vim宏自动化它
:read !pbpaste
如果您使用的是Linux使用:
xsel --clipboard --output
或:
xclip -selection clipboard -o
而不是pbpaste。
我赞成像Masi建议的粘贴/ nopaste。 在.vimrc中,您可以映射某些字符以切换粘贴(如果经常需要)。
即
set pastetoggle=§
没有变化:这是我的贴:http://dpaste.com/115362/ – 2009-02-01 19:23:12