默认的缓冲区大小复制/粘贴在VIM?

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

150Y 

我做了:q ,然后vim (otherProgram).py ,并按'p'。 只有50行复制。 于是我回到我原来的文件,做了shift-v然后select了我想要的行,然后去了另一个文件,并做了p 。 它似乎也没有优雅复制,仍然只有50行。

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

它看起来像你需要在你的.vimrc这样的东西:

 set viminfo='20,<1000 

最重要的部分是<1000 ,这表明你希望你的寄存器每行最多可以存储1000行。 在设置viminfo时, '20部分显然是必需的,但是对于您所述的需求并不特别相关。 (表示记录标记的文件数量。)

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

 set viminfo='20,<1000,s1000 

对我来说这个命令:

 set viminfo=<1000 

抛出一个错误:

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

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

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

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

 :verbose set viminfo? 

你正在使用vim的功能来保持会话之间的.viminfo寄存器。 帕特里克已经说明了这种方法的局限性,以及如何提高默认限制。

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

另外,您应该阅读:帮助缓冲区,vim完全能够在同一个会话中打开多个文件。