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

cor*_*vid 21 linux macos vim

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

150Y
Run Code Online (Sandbox Code Playgroud)

:q然后vim (otherProgram).py,我做了,并按'p'.只复制了50行.所以我回到我的原始文档并shift-v选择了我想要的行,然后y转到另一个文档,然后做了p.它似乎也没有优雅地复制,仍然只有50行.

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

pat*_*cek 29

看起来你需要把这样的东西放在你的.vimrc:

set viminfo='20,<1000
Run Code Online (Sandbox Code Playgroud)

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

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

set viminfo='20,<1000,s1000
Run Code Online (Sandbox Code Playgroud)

  • 另外,附加`,s1000`以将默认限制10kb提高到例如1000kb. (3认同)

Iva*_*ave 5

对我来说这个命令:

set viminfo=<1000
Run Code Online (Sandbox Code Playgroud)

抛出错误:

E528: Must specify a ' value: viminfo=<1000
Run Code Online (Sandbox Code Playgroud)

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

set viminfo='50,<1000,s100,h
Run Code Online (Sandbox Code Playgroud)
  • 第二个值 - 要复制的最大行数

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

:verbose set viminfo?
Run Code Online (Sandbox Code Playgroud)