我试图从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完全能够在同一个会话中打开多个文件。