如何将只读文件的每一行复制到 Vim 中的剪贴板?

How to copy every line to clipboard in Vim for read-only file?

我发现 gg"*yG 将每一行都复制到剪贴板,并且有效。 但是,对于只读文件,该命令不起作用。 更准确地说,原始文件有 89 行,但 gg"*yG 只复制了 50 +- 1 行。

如何解决这个问题?

注意。我无法更改文件,因为它在服务器中,我没有权限。

一个更简单的命令是 :%y*,其中:

  • %是范围1,$的shorthand,意思是“从第1行到最后一行”,
  • y 是命令 :y, "yank",
  • *是目标寄存器。

但这最终与你的问题无关,即默认情况下,Vim只保存寄存器的前50行。该限制是使用 viminfo 选项设置的,该选项具有以下默认值:

100,<50,s10,h

这是 :help 'viminfo' 对此事的看法:

<   Maximum number of lines saved for each register.  If zero then
    registers are not saved.  When not included, all lines are
    saved.  '"' is the old name for this item.
    Also see the 's' item below: limit specified in Kbyte.

要手动将限制从 50 更改为 100,在拉动之前说,执行:

:set viminfo-=<50 viminfo+=<100

要永久更改它,请将上面的行添加到您的 vimrc