vim限制行内存

Her*_*son 15 vim lines pasting

我试图将300行从一个文件复制到另一个文件,在源文件中输入"300yy",它说它已经猛拉了300行.

转到目标文件并按p,它会粘贴,但只有前50行.

任何想法为什么它不粘贴300?

Eug*_*ash 22

正如Vim Tips Wiki中所建议的那样,您可以调整viminfo设置:

:set viminfo?
:set viminfo='100,<1000,s100,h
Run Code Online (Sandbox Code Playgroud)

各个位意味着什么:

  • '100 将记住最近100个已编辑文件的标记.
  • <1000将每个寄存器保存的行数限制为1000行; 如果寄存器包含超过1000行,则只保存前1000行.
  • s100 跳过超过100 KB文本的寄存器.
  • h Vim启动时禁用搜索突出显示.

  • @Hermann:在vim中运行`:help'viminfo'`命令 (3认同)
  • 只需快速记下":help viminfo"和":help'viminfo'"即可获得不同的帮助.后者是你需要的. (2认同)

Pet*_*ker 8

正如Eugene和Zyx所说,调整你的viminfo将是最简单的解决方案

:set viminfo-=<50,s10

另一种解决方案是使用:read和/或:write

从file-name.txt读入当前缓冲区

:read file-name.txt

要将第1行的范围附加到从当前缓冲区到file-to-append.txt的第300行

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

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

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

当然,追加可能无法满足您的viminfo更改可能最有效的用例.

:help :write
:help :read
:help 'viminfo'
:help :set-=
Run Code Online (Sandbox Code Playgroud)


mb1*_*b14 6

留在同一个会话中(使用 :e 路径打开新文件),您将不会受到任何限制。


d-_*_*_-b 5

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