我试图从vim会话中复制150行以粘贴到另一个会话中。我的第一个想法是去
150Y
我做了:q
,然后是vim (otherProgram).py
,然后按了'p'。只复制了50行。
所以我回到我的原始文档并做了shift-v
并选择了我想要的行然后y
,转到另一个文档,然后p
。它似乎也没有优雅地复制,仍然只有50行。
我开始认为vim的复制缓冲区有一些默认大小。我使用的是Mac OS X. 有没有办法找出是否有某种默认缓冲区大小?有没有办法改变它?
答案 0 :(得分:27)
您似乎需要在.vimrc
:
set viminfo='20,<1000
重要的部分是<1000
,表示您希望寄存器每个最多可存储1000行。设置'20
时显然需要viminfo
部分,但与您所述的需求并不特别相关。 (它表示记住标记的文件数。)
有关详细信息,请参阅:help 'vi
。可以在viminfo
字符串中指定大量其他参数。例如,您可能需要增加最大寄存器大小。默认值为10kb,如果还不够,请尝试将其增加到1000kb:
set viminfo='20,<1000,s1000
答案 1 :(得分:3)
对我来说这个命令:
set viminfo=<1000
抛出错误:
E528: Must specify a ' value: viminfo=<1000
在.vimrc文件中使用完整字符串:
set viminfo='50,<1000,s100,h
检查你的最后一个值(在vim中):
:verbose set viminfo?
答案 2 :(得分:0)
你正在使用vim的能力在会话之间保留寄存器.viminfo。 Patrick已经解决了该方法的局限性以及如何提高默认限制。
但是,如果你需要经常在vim和其他程序之间进行复制/粘贴,你应该尝试使用macvim,它可以为你提供剪贴板支持。
另外,你应该阅读:help buffers,vim完全能够在同一个会话中打开多个文件。