Linux 要在vim中复制/粘贴的默认缓冲区大小?
我试图从一个vim会话中复制150行以粘贴到另一个会话中。我的第一个想法是去Linux 要在vim中复制/粘贴的默认缓冲区大小?,linux,macos,vim,Linux,Macos,Vim,我试图从一个vim会话中复制150行以粘贴到另一个会话中。我的第一个想法是去 150Y 我做了:q,然后vim(otherProgram).py,然后按了“p”。只复制了50行。 因此,我返回到我的原始文档,执行shift-v并选择我想要的行,然后执行y,转到另一个文档,执行p。它似乎也没有优雅地复制过来,仍然只有50行 我开始认为vim的复制缓冲区有一些默认大小。我正在使用MacOSX。 有没有办法找出是否存在某种默认的缓冲区大小?有什么办法可以改变它吗?看起来您需要在中添加类似的内容。vi
150Y
我做了:q
,然后vim(otherProgram).py
,然后按了“p”。只复制了50行。
因此,我返回到我的原始文档,执行shift-v
并选择我想要的行,然后执行y
,转到另一个文档,执行p
。它似乎也没有优雅地复制过来,仍然只有50行
我开始认为vim的复制缓冲区有一些默认大小。我正在使用MacOSX。
有没有办法找出是否存在某种默认的缓冲区大小?有什么办法可以改变它吗?看起来您需要在
中添加类似的内容。vimrc
:
set viminfo='20,<1000
您正在使用vim的功能在会话之间将寄存器保存在它的.viminfo中。Patrick已经讨论了该方法的限制以及如何提高默认限制 但是,如果您需要经常在vim和其他程序之间复制/粘贴,您应该尝试macvim,它为您提供剪贴板支持 另外,您应该阅读:help buffers,vim完全能够在同一会话中打开多个文件。对于我来说,这个命令:
set viminfo=<1000
你说“回去,去”是怎么回事?为什么
:q
,您可以:e(其他程序).py
这不是关于内部缓冲区大小(仅受可用内存限制),而是关于_viminfo`文件中寄存器内容的持久性,因为您已经退出并重新启动了Vim。另外,追加,s1000
将默认限制10kb提高到例如1000kb。如另一个答案中所述,这会导致错误:E528:必须指定一个'value:viminfo=@olovb,忽略'20
会导致错误,这是正确的。我在自己的.vimrc
中使用了它,但之前没有意识到它是必需的!此处对参数进行了解释:另请参见其中的注释/链接
set viminfo=<1000
E528: Must specify a ' value: viminfo=<1000
set viminfo='50,<1000,s100,h
:verbose set viminfo?