读取大文件时 gVim 内存过载/应用程序崩溃

gVim memory overload/ application crash while reading large files

我需要在 gVim 上读取一个相当大的 (~5 Gb) 文件。它由换行符分隔。每 150 个字符左右。但是,当我尝试打开它们时,编辑器会尝试加载它一分钟然后崩溃。 快速查看我的内存使用情况表明它在 运行 之前使用了我 8 Gb 内存的 90%。 S.O 上的一些用户指出 Vim 使用预处理器指令并建议禁用它们。我试图这样做,但它仍然无法加载。 您可以查看讨论here。还有其他提示吗? 干杯 - 苏哈斯

作为交互式编辑器,Vim 必须将整个文件加载到内存中。像提到的 LargeFile 这样的插件可以帮助提高 Vim 的性能(通过关闭语法高亮、交换文件等),但不能缓解内存压力。

如果你真的需要编辑这么大的文件,我只看到两个选项:

  • split(一个 Unix 工具,也由 Cygwin 为 Windows 提供)将文件分成更小的块,编辑它们(交互地,使用 Vim),然后重新加入通过 cat
  • 使用 sed(其命令语法类似于 Vim 的 Ex 命令,因为它们都派生自 ed)或真正的编程语言(如 Perl,Python, 等可以从输入流中读取)以非交互方式修改文件;这些程序不需要将整个文件保存在内存中,因此可以非常高效地工作