我试图将300行从一个文件复制到另一个文件,在源文件I键入“ 300yy”中,它说它已猛拉300行。

转到目标文件并按P,它粘贴,但只有前50行。

知道为什么它不粘贴300吗?

有帮助吗?

解决方案

如建议 VIM提示Wiki, ,您可以调整 viminfo 环境:

:set viminfo?
:set viminfo='100,<1000,s100,h

单个位的含义:

  • '100 最后100个编辑文件将记住标记。
  • <1000 将每个寄存器保存的行数限制为1000行;如果寄存器包含超过1000行,则仅保存前1000行。
  • s100 跳过了超过100 kb的文本的寄存器。
  • h 禁用搜索突出显示VIM何时开始。

其他提示

正如尤金(Eugene)和Zyx所说,调整您的Viminfo将是最简单的解决方案

:set viminfo-=<50,s10

替代解决方案将是使用 :read 和/或 :write

要从file-name.txt读取到当前的缓冲区

:read file-name.txt

要将第1行的范围附加到第300行,从当前的缓冲区到文件append.txt

:1,300write >> file-to-append.txt

您也可以使用标记代替线号,例如视觉标记

:'<,'>write >> file-to-append.txt

当然,附录可能无法满足您的用例,在这种情况下,Viminfo更改可能会效果最好。

:help :write
:help :read
:help 'viminfo'
:help :set-=

留在同一会话中(打开新文件:E路径),您将不会有任何限制。

尝试 vim -p file1 file2. 。它将每个文件打开到一个新选项卡(很棒)中,并求解复制/粘贴限制

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top