Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 要在vim中复制/粘贴的默认缓冲区大小?_Linux_Macos_Vim - Fatal编程技术网

Linux 要在vim中复制/粘贴的默认缓冲区大小?

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

我试图从一个vim会话中复制150行以粘贴到另一个会话中。我的第一个想法是去

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?