25

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

150Y

我做了:q,然后vim (otherProgram).py按了“p”。只复制了 50 行。所以我回到我的原始文档并shift-v选择了我想要的行然后做y,转到另一个文档,然后做p。好像也没有优雅地抄过来,还是只有50行。

我开始认为 vim 的复制缓冲区有一些默认大小。我正在使用 Mac OS X。有没有办法找出是否有某种默认缓冲区大小?有没有办法改变它?

4

3 回答 3

34

看起来你需要在你的.vimrc

set viminfo='20,<1000

重要的部分是<1000,它表示您希望每个寄存器最多存储 1000 行。该'20部件在设置时显然是必需的,viminfo但与您声明的需求并不特别相关。(它表示记住标记的文件数。)

有关详细信息,请参阅:help 'vi。可以在viminfo字符串中指定许多其他参数。例如,您可能需要增加最大寄存器大小。默认为 10kb,如果这还不够,试试这个将它增加到 1000kb:

set viminfo='20,<1000,s1000
于 2013-07-23T13:50:52.113 回答
5

对我来说这个命令:

set viminfo=<1000

抛出错误:

E528: Must specify a ' value: viminfo=<1000

在 .vimrc 文件中使用完整的字符串:

set viminfo='50,<1000,s100,h
  • 第二个值 - 要复制的最大行数

检查您的最后一个值(在 vim 中):

:verbose set viminfo?
于 2014-09-28T20:09:15.463 回答
0

您正在使用 vim 将寄存器保存在会话之间的 .viminfo 中。Patrick 已经解决了该方法的限制以及如何提高默认限制。

但是,如果您需要经常在 vim 和其他程序之间复制/粘贴,您应该尝试 macvim,它为您提供剪贴板支持。

此外,您应该阅读 :help buffers,vim 完全能够在同一个会话中打开多个文件。

于 2013-07-23T14:32:22.337 回答