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

时间:2015-04-15 05:49:44

标签: database vim vi

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

1 个答案:

答案 0 :(得分:0)

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

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

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